有人可以详细解释Javascript引擎如何处理循环引用?浏览器甚至node.js之间有很大的区别吗?
我所说的是对象内部的显式反向/下一个引用.例如:
var objA = {
prop: "foo",
next: null
};
var objB = {
prop: "foo",
prev: null
};
objA.next = objB;
objB.prev = objA;
Run Code Online (Sandbox Code Playgroud)
我们走了.如果我们这样做,console.log( objA )我们可以看到我们创造了一个无限链.最大的问题是,这是不是很糟糕?未明确清除时是否会造成内存泄漏?
所以我们必须这样做
objA.next = null;
objB.prev = null;
Run Code Online (Sandbox Code Playgroud)
或者垃圾收集者会照顾我们这样的星座吗?
javascript garbage-collection memory-leaks circular-reference