關於js中連續賦值的問題, 通常狀況寫不要隨便寫連續賦值, 容易出問題 考慮下一下會輸出什麼內容, 先思考下, 而後上機測試下看看考慮的對不對面試
var a = {
n:1,
}
var b =a ;
a.x = a = {n:2}
console.log(a.x);
console.log(b.x);
console.log(a);
console.log(b);
複製代碼
var a = {
n:1,
}
var b =a ;
a.x = a = {n:2}
//a指向了一個新地址
//a.x原來中的a仍是指向原來位置,因此 a.x = a = {n:2} 等於實現了 a.x = {n:2}
console.log(a.x); //undefined , 緣由是此時a 由於a = {n:2}操做, a的指向已經變了, 如今a跟以前的a.n中的a不是一個指向了
console.log(b.x); //{n:2}
console.log(a); //{n:2} a指向了一個新地址
console.log(b); //{n:1 x:{n:2} //a.x原來中的ah仍是指向原來位置 a.x = a = {n:2} 等於實現了 a.x = {n:2}
複製代碼