javascript循环引用如何工作?

时间:2014-04-09 13:46:16

标签: javascript

我不确定为什么会这样。

var a = {};
a.hello = a;

如果您在控制台中浏览对象,您将看到如下内容: enter image description here

a.hello = a是循环引用。似乎当我们分配a.hello = a时,一切都会爆炸。有人可以解释内部发生的事情吗?

2 个答案:

答案 0 :(得分:4)

你有一个对象。

该对象包含一个属性,该属性是指向同一对象的指针。

这就是全部。

从那里开始,您可以根据需要不断递归到a.hello.hello.hello.hello,但您仍然只是引用相同的对象。也就是说,a.hello === a.hello.hello适用于任何深度。

鉴于window行为方式相同(window.window.window.window.MUSHROOM),这不是一件好事,而且不会爆炸......#/ p>

答案 1 :(得分:3)

在处理对象时,JavaScript通过引用处理它们,而不是复制。所以循环结构没问题。