- 在堆中创建一个对象{n:1},变量a保存了此对象的地址
- 变量b同样保存了此对象的地址
- a={n:2}此操作使变量a不在保存最初的地址,保存{n:2}这个对象的地址
- a.x=?
a.x=a={n:2}这个表达式执行后的结果:
b指向的原始对象新增了一个属性x
a的指向由原始对象变为新对象
表面上看起来,a是先被改变,然后再添加x属性,但事实是a.x此处的a指向的是原始对象,也就是b所指向的原始对象。
为什么?
没有为什么。
总有一天我会知道为什么。
a.x=a={n:2}这个表达式执行后的结果:
b指向的原始对象新增了一个属性x
a的指向由原始对象变为新对象
表面上看起来,a是先被改变,然后再添加x属性,但事实是a.x此处的a指向的是原始对象,也就是b所指向的原始对象。
为什么?
没有为什么。
总有一天我会知道为什么。