var a = {n:1};
var b = a; // 持有a,以回查
a.x = a = {n:2};
console.log(a.x);// --> undefined
console.log(b.x);// --> {n:2}
连等时,会先明确所有主语的引用
连续赋值的时候,a.x作为一个指针已经确定,即使右侧先进行了替换a的复制,a.x的主语依然是原来的a,所以之后的b应该是{n:1,x:{n:2}}
【a.x 这里是 {n:1} 的 x 属性】 和 【a】这个变量被同时赋值为 {n:2}
网友评论