連等運算

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}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章