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等于


本文探讨了JavaScript中对象赋值的方式及引用问题,重点分析了一条包含多个操作的语句执行过程,解释了属性访问及赋值的优先级,并展示了如何通过这种方式更新对象属性。
1285

被折叠的 条评论
为什么被折叠?



