var a={n:1};
var b=a;
a.x=a={n:2};
console.log(a)//{n:2}
console.log(b)//{n:1,x:{n:2}}
解析:
第一步:var a={n:1} b=a; ——>a=b={n:1}
第二步:a.x(点的优先级高于等号) ——>a=b={n:1,x:undefined}
第三步:a={n:2} ——> a={n:2}; b={n:1,x:undefined}
第四步:a.x=a(a.x已执行,这一步只是赋值) ——> a={n:2}; b={n:1,x:{n:2}}