练习题
let a = {
n: 1
};
let b = a;
a.x = a = {
n: 2
};
console.log(a.x);
console.log(b);
该题主要考察的是对堆栈了解
解题:
1. 首先前两句声明了一个堆{n:1} 以及两个指向该内存地址的a与b
2. a.x=a={n:2;} 分为三步骤。
1. 声明一个新的堆`{n:2}`
2. a.x 指向一个新的堆 此时 `a,b={n:1,x:{n:2}}`
3. a 从新指向`{n:2}` 因此此时a与b不再是同一个堆内存 `a={n:2}` `b={n:1,x:{n:2}}`
答案为 a.x = undefined \ b = {b={n:1,x:{n:2}}}
主要还是细心~