引用类型赋值问题

var a=new Object();

a.name="p";

var b=a;

a和b都指向了Object,虽说a动态的添加了属性name,后面赋值的时候也把指针复制给了b;但是Object对象的属性并没有发生变化,始终是undefined;b是如何获得这个name属性的?改变这个name 值的时候,b怎么也跟着变了?

comlejade
浏览 2210回答 9
9回答

echo_kinchao

b就是一个变量 里面的东西是a给他的

慕男婶

并不是说,对象被改变了,比如新加了一个name属性,然后对象的地址就变了,对象的地址不变!对象的地址不变!对象的地址不变!对象的地址不变!加上这个新属性就完了,对象的地址不变!对象的地址不变!对象的地址不变!对象的地址不变!为什么要变呢?这部是自己找麻烦呢么?js设计者又不是SB。。你家新装修了,比如加了个马桶,你加的地址就变了么?我活这么大没见过这种情况

慕男婶

地址并不会变啊,什么动态更新啊,都什么玩意儿啊,谁教你的啊,简直误人子弟。。a,b指向同一个对象,通过a改变了对象,那么b在通过地址找到这个对象,肯定是被a改变过后的对象啊。。这你都不理解??地址变个毛啊。。

comlejade

总感觉我的理解中少了一点什么,但是不知道究竟缺在哪里。。。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript