我在GitHub前端面试问题集中发现了这个问题:
var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};
问题:foo.x的值是什么?
答案是undefined。
我已经进行了一些研究,并且我理解这个问题(如果我错了,请纠正我):
var foo = {n: 1};声明一个foo属性n等于1 的对象。
var bar = foo;声明一个对象bar,该对象引用与相同的对象foo。
foo.x = foo = {n: 2}; 我相信等于 foo.x = (foo = {n: 2});
然后我foo.x等于undefined。但是,的值bar.x是object {n:2}。
如果bar和foo引用相同的对象,为什么在bar.x得到值却foo.x是undefined?真正发生了foo.x = foo = {n: 2};什么?
暮色呼如
LEATH
喵喵时光机
相关分类