【发布时间】:2011-11-12 21:59:03
【问题描述】:
谁能详细解释一下 Javascript 引擎如何处理循环引用?浏览器甚至node.js之间有很大区别吗?
我所说的是对象内的显式后退/下一个引用。例如:
var objA = {
prop: "foo",
next: null
};
var objB = {
prop: "foo",
prev: null
};
objA.next = objB;
objB.prev = objA;
我们去吧。如果我们执行console.log( objA )
,我们可以看到我们创建了一个无限链。
最大的问题是,这很糟糕吗?不明确清理时是否会造成内存泄漏?
我们必须这样做
objA.next = null;
objB.prev = null;
或者垃圾收集器会在这样的星座上照顾我们吗?
【问题讨论】:
标签: javascript memory-leaks garbage-collection circular-reference