我不确定为什么会这样。
var a = {};
a.hello = a;
如果您在控制台中浏览该对象,您将看到如下内容:
a.hello = a
是一个循环引用。似乎当我们分配 a.hello = a
时,一切都会爆炸。有人可以解释一下内部发生的事情吗?
最佳答案
你有一个对象。
该对象包含一个属性,该属性是指向同一对象的指针。
就这些。
从那里,您可以根据需要不断递归到 a.hello.hello.hello.hello
中,但您仍然只是引用同一个对象。也就是说,对于任何深度,a.hello === a.hello.hello
。
考虑到 window
的行为方式相同 (window.window.window.window.MUSHROOM
),它没有“爆炸”是件好事!
关于javascript - javascript 循环引用是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22964584/