为了账号安全,请及时绑定邮箱和手机立即绑定

对象属性问题

对象属性问题

慕粉3536829 2016-09-22 13:38:43
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={};上啊,求解

查看完整回答
反对 回复 2017-03-30
?
靖_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}这个对象了 因为他的值指向的是这个对象的地址了


查看完整回答
反对 回复 2016-09-26
  • 3 回答
  • 0 关注
  • 1134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信