关于 js 对象的一个题

2020-04-17  本文已影响0人  coderfl
var a = {n:1};
var b = a;
a.x = a = {n:2};
console.log(a);
console.log(b);
image.png
解题关键:对象是引用类型->所有的对象赋值其实都是给了这个对象的引用地址
  1. 假设 {n:1} 的地址是1000,那么 a 和 b 的地址也就是1000。假设 {n:2} 的地址是1002

{n:1} - 1000
a - 1000
{n:2} - 1002
b - 1000

  1. 点的优先级高于等号 a.x 会先执行,然后 a = {n:2} 执行,所以:

{n:1, x:} - 1000
a - 1002
{n:2} - 1002
b - 1000

  1. a = {n:2} 执行后,又赋值给 a.x,所以:

{n:1, x:{n:2}} - 1000
a - 1002
{n:2} - 1002
b - 1000

上一篇下一篇

猜你喜欢

热点阅读