var x1 = { x:1 };var x2 = x1;var x1 = { y: 2};alert( x1); // object{ y:2 }变量x1的x属性怎么没了? 被y覆盖了? 这里叫x1是变量还是对象?
3 回答
慕丝8521526
TA贡献1条经验 获得超0个赞
Object.getOwnPropertyDescripto和obj.prototype功能否相同,为什么Object.getOwnPropertyDescripto不能用在function obj(){}上呀?obj.prototype也不能用在var obj={};上啊,求解
靖_pacify
TA贡献7条经验 获得超5个赞
对象都是存放在堆里面的,基本类型、常量、声明啊神马是在栈里面存放的 类似指针 指向对象的内存地址
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}这个对象了 因为他的值指向的是这个对象的地址了
添加回答
举报
0/150
提交
取消