var a = {n:1}; var b = a; a.x = a = {n:2}; console.log(a); console.log(b); console.log(a.x); console.log(b.x); 輸出結果: //{n:2} //{n:1,x:{n:2}} //undefined //{n:2}
看明白了網上的解釋,傳送,本身再整理了下。有以下2點知識點:
1.連等運算符 首先要肯定全部變量地址
2.連等運算符 是由右向左執行segmentfault
知道以上2點的話再回頭看下,spa
第一步:
var a = {n:1}; var b = a;
執行到這裏,地址指向以下:code
第二步
a.x = a = {n:2};
走到這段代碼時,
分以下幾塊:
a.肯定2個地址,a.x和a ,a的地址已經指向了{n:1},x爲新聲明,地址指向null,此時指向關係以下:
b.執行 a = {n:2};
c.執行 a.x = a;blog
到此,執行完畢,打印a.x時 爲undefined,b.x爲{n:2}.get