JavaScript連等賦值運算理解

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.連等運算符 是由右向左執行

知道以上2點的話再回頭看下,

第一步:
var a = {n:1};
var b = a;

執行到這裏,地址指向如下:
c1dc49dcf194d709934b31822d723bf.png

第二步
a.x = a = {n:2};

走到這段代碼時,
分如下幾塊:
a.確定2個地址,a.x和a ,a的地址已經指向了{n:1},x爲新聲明,地址指向null,此時指向關係如下:
e1177d987ca7e88f71d095b7e01e5a9.png
b.執行 a = {n:2};
0f11041bfad054eec98209363975669.png
c.執行 a.x = a;
9d4e0901a1b8914e666c7fcb74f1ecf.png

到此,執行完畢,打印a.x時 爲undefined,b.x爲{n:2}.

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