【奇怪的输出题】对象引用的问题
题目如下:
var a = {n: 1};
var b = a;
a.x = a = {n: 2};
console.log(a.x)
console.log(b.x)
答案是:
undefined
{n:2}
解析:
首先:a和b同时引用了{n:2}对象
然后执行a.x = a = {n: 2}语句,尽管赋值是从右到左的
但.的优先级比=高,所以这里会先执行a.x,相当于为a所指向的对象{n:1}新增了一个属性x
然后执行a={n:2},相当于改变了a的指向,a不再指向对象{n:1},而
原创
2021-08-20 21:16:25 ·
233 阅读 ·
0 评论