如图 第一种 s1开始指向{a:{}};
然后 开始取地址 s1.a 的地址指向 null,s1 的地址指向{a:{}};
然后s1={b:2} 开始赋值 s1的地址重新指向对象{b:2};
最后原对象{a:{}}的a 重新指向{b:2};
新对象s1 ={b:2}里面 没有a属性 所以 s1.a 打印出undefined.
如图 第一种 s1开始指向{a:{}};
然后 开始取地址 s1.a 的地址指向 null,s1 的地址指向{a:{}};
然后s1={b:2} 开始赋值 s1的地址重新指向对象{b:2};
最后原对象{a:{}}的a 重新指向{b:2};
新对象s1 ={b:2}里面 没有a属性 所以 s1.a 打印出undefined.