a = {n: 1}; b = a; a.x = a = {n:2}; a.x -> undefined b.x -> {n:2} 图解

a = {n: 1}
b = a
a.x = a = {n: 2}

console.log(a.x) // undefined
console.log(b.x) // {n: 2}

点运算符具有更高优先级,赋值从右向左进行
在这里插入图片描述a = {n: 1};b = a;
a.x 等待被赋值
a = {n: 2}
原 a.x 被赋值
个人理解:a.x 的时候实际操作的地址已经确定了。即便过程中a变换指向,也不影响对该地址进行操作。

posted @ 2022-04-12 21:41  海胆Sur  阅读(7)  评论(0)    收藏  举报  来源