连等赋值
var a = { x: 2, y: 3 };
var b = a;
a.x = a = { n: 1 };
console.log(a); //{n:1}
console.log(b); //{x:{n:1},y:3}
第二行 b 指向{a.x 地址,a.y 地址}
第三行 首先读取 a.x 的地址 ref1, 然后读取 a 对象 (从左往右读取)
接着 a 对象被替换为{n:1}, a.x 的地址 ref1 指向{n:1} (从右往左读取)
但是a已经被替换,不包含x
第四行 输出 a 对象 为{n:1}
第五行 输出 b 对象 为{x:{n:1},y:3}