我在以下代码段中没有提到的内容: a和b现在指向同一个对象。
var foo = {n:1}; /// foo points to an object
var bar = foo; /// bar point to the same object as foo
foo.x = foo = {n:2}; /// foo is now pointing to a new object
在最后一次分配中,属性x被添加到bar。 为什么? x不应指向n:2?
答案 0 :(得分:0)
foo.x = foo = {n:2}; /// foo is now pointing to a new object
你可以简化为
foo = {n:2}; // foo point to a NEW object
foo.x = foo;
所以x指向foo。属性链接到自己的对象。