var a = {n: 1};
var b = a;
a.x = a = {n: 2}; // 等價於 b.x = a = {n: 2};
分析:
a = {n: 2}
因爲: a.x = b.x = {n: 2}
又:b = a = {n: 1}
得:b = {n: 1, x: {n: 2}}
console.log(a); // {n: 2}
console.log(a.x); // undefined
console.log(b); // {n:1, x: {n: 2}}
console.log(b.x); // {n: 2}
var a = b = 20; // 連等的第二個變量屬於全局變量
a.x = a = {n:2}; // 連等是從右往左執行的
a.x = a = {n:2}; // js語句執行前會保存之前的索引
練習題:
var a = {n: 1}
var b = a;
a = a.x = { x: 1}
a == ?
b == ?
a.x == ?
b.x == ?
a.x = b.x = {x: 1}
b = a = {n : 1, x: {x: 1}}
a = {x: 1}