650120
var a = {n: 1} var b = a; a.x = a = {n: 2} console.log(a.x); console.log(b.x);
什么结果,,解释一下
var a = {n: 1} var b = a; a.x = a = {n: 2} console.log(a.x); console.log(b.x);
什么结果,,解释一下
这样写程序是作死,作为题目还是可以一看的...浓浓的谭浩强风...错就错在容易忽略a.x优先级高这点
和对象无关,我理解为对连等的解析和运算优先级,核心是 . 优先于 = 和 连等从右到左运行且等式左边的引用确定于运行前
a.x = a = {n: 2}
a.x 指向undefined先,此时a === b === {n:1, x:undefined}a = {n:2} 把a的引用指向一个新对象{n:2} , 此时 新a === {n:2}, b === {n:1, x:undefined} === 旧a等这行运行完了,现在a的指向是{n:2} ,b仍指向是有了新属性x的旧a,也就是{n:1,x:Object}
你要这样问,我肯定说我不会
这个是数组?