javascript - javascript 循环引用是如何工作的?

标签 javascript

我不确定为什么会这样。

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

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

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/

相关文章:

javascript - 小数计数器 React + JS

javascript - 如何仅使用 Javascript 裁剪图像?

javascript - 术语执行上下文和范围之间有区别吗?

javascript - 动态创建JS对象

javascript - 当文本对齐居中时,插入符号出现在占位符 onfocus 的末尾

javascript - 替代多个“if 语句?

javascript - 无法访问 JS 对象的元素

javascript - 在 jqGrid 的行中添加自定义按钮?

javascript - 如何关闭字母按钮?

javascript - Extjs 如何将 JSON 文件夹结构加载到树中?