我在一个GitHub前端面试问题集中发现了这个问题:
var
= {n: 1};var bar = foo;foo.x = foo = {n: 2};
问: foo.x的价值是什么?
答案是undefined
。
我做了一些研究,我对这个问题的理解是(如果我错了,请纠正我):
var foo = {n: 1};
声明了一个属性为1.var bar = foo;
的对象n
,声明了一个引用与foo.x = (foo = {n: 2});
bar
,我相信它等于foo
,然后我得到了n
等于bar
。但是,对象{n:2}
.为bar.x
的值
如果bar
和foo
引用了同一个对象,为什么bar.x
会得到一个值,而foo.x
却是undefined
?foo.x = foo = {n: 2};
中到底发生了什么
https://stackoverflow.com/questions/32342809
复制相似问题