var a = {n:1}
var b = a
a.x = a = {n:2}console.log(a.x)
console.log(b)
貌似一看很简单
仔细一看很复杂
来回一琢磨还是很简单
这道题最关键的, 就是这句话了
a.x = a = {n:2}
你首先需要了解一个运算符优先级的问题
在所有的运算符当中, 除了 () 小括号
级别最高的 就是属性访问了, 也就是 . 小圆点
那么在整个这句话当中, 最先执行的, 应该是 a.x
可以理解为 x = a = {n:2}
或者b.x = a = {n:2}
因此最终, b等于