对象属性问题

var x1 = { x:1 };

var x2 = x1;

var x1 = { y: 2};

alert( x1); // object{ y:2 }

变量x1的x属性怎么没了? 被y覆盖了? 这里叫x1是变量还是对象?

慕粉3536829
浏览 1135回答 3
3回答

慕丝8521526

Object.getOwnPropertyDescripto和obj.prototype功能否相同,为什么Object.getOwnPropertyDescripto不能用在function obj(){}上呀?obj.prototype也不能用在var obj={};上啊,求解

靖_pacify

对象都是存放在堆里面的,基本类型、常量、声明啊神马是在栈里面存放的 类似指针 指向对象的内存地址var x1 = { x:1 };    堆空间开辟空间存放{x:1}对象(对象会有地址用于查找引用)  栈空间里面存放x1 x1=={x:1}对象内存地址var x2 = x1;         栈空间添加一个x2  x2==x1=={x:1}对象内存地址var x1 = { y: 2};    堆空间开辟空间存放{y:2}对象  修改栈空间x1值(或者说指针指向) x1=={y:2}对象内存地址所以说现在x1查找到的是{y:2}这个对象了 因为他的值指向的是这个对象的地址了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript