2016-02-29 40 views
0

一些我不下面的代碼片段獲取: 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被添加到條上。 爲什麼?不應該指向n:2?

回答

1
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。屬性鏈接到它自己的對象。

+0

如果我跑這是在Chrome腳本,看來酒吧擁有新的屬性。 FOO:對象 N:2 欄:對象 N:1 X:對象 foo.x:未定義 – badigard