js经典题

图1
图1
图2
图2
题干:
var a={n:1};
var b=a;
a.x=a={n:2};
console.log(a,b,a.x)

解:js中“.”与“=”同时存在时,优先计算“.”,也就是说,在a.x=a={n:2}中,{n:2}先赋值给a的新属性x 即x={n:2}。所以b={n:1,x:{n:2}} 然后再赋值a 即a={n:2} 此时a获得一个新的引用地址,地址指向{n:2},之前的地址就不会再调用了,故就不会有新的属性x,所以打印时a.x就会显示undefined。
结果如图2

发布了5 篇原创文章 · 获赞 0 · 访问量 562

猜你喜欢

转载自blog.csdn.net/tianlei11/article/details/103737880