垃圾收集链接的对象

马克斯·科雷茨基(Max Koretskyi)

我有以下代码:

var o = (function() {
    var o1 = {name: "o1"};
    var o2 = {name: "o2"};
    var o3 = {name: "o3"};

    o1.child = o2;
    o2.child = o3;
    o3.parent = o2;

    setTimeout(function() {
        o1.child = null;
    }, 1000);

    return o1;
})();

超时回调退出后,对象o2对象是否有o3资格进行垃圾回收?

詹姆斯·索普

在函数中运行此代码后,局部变量将超出范围,并且在超时触发并断开链接它们的链后,指向的对象将可用于垃圾回收,因此仅o1保留给的分配o

但是,如果您只是在全局范围内运行该函数的内容,例如:

var o1 = {name: "o1"};
var o2 = {name: "o2"};
var o3 = {name: "o3"};

o1.child = o2;
o2.child = o3;

setTimeout(function() {
    o1.child = null;
}, 1000);

那么o1o2o3都将是全局对象(属性window在浏览器中),并且需要单独清除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript Blob对象何时被垃圾收集?

来自分类Dev

是否可以将对象标记为不进行垃圾收集?

来自分类Dev

JVM的Java对象垃圾收集

来自分类Dev

Java垃圾收集器如何识别未引用的对象?

来自分类Dev

复合对象上的python垃圾收集器行为

来自分类Dev

如何检查什么阻止对象符合垃圾收集条件?

来自分类Dev

循环中无法访问的对象的垃圾收集

来自分类Dev

如何在Java中垃圾收集String对象?

来自分类Dev

Java:指向垃圾对象的垃圾对象会被垃圾收集吗?

来自分类Dev

垃圾收集对象的数量

来自分类Dev

Java-正在垃圾收集哪些对象?

来自分类Dev

确保对象可以被垃圾收集

来自分类Dev

Java中符合垃圾收集条件的对象

来自分类Dev

为什么对WeakRef对象的WeakReference不进行垃圾收集?

来自分类Dev

不可变对象如何帮助减少垃圾收集带来的开销?

来自分类Dev

String.split()临时对象和垃圾收集

来自分类Dev

为什么垃圾收集器不收集Tasks对象

来自分类Dev

是否已收集WebGL对象垃圾?

来自分类Dev

在对象被垃圾收集后清理

来自分类Dev

为NodeJS中的垃圾收集“标记”一个对象

来自分类Dev

自定义链接列表中的垃圾收集

来自分类Dev

垃圾收集环境中对象的生存时间

来自分类Dev

复合对象上的python垃圾收集器行为

来自分类Dev

Java:指向垃圾对象的垃圾对象会被垃圾收集吗?

来自分类Dev

Java-正在垃圾收集哪些对象?

来自分类Dev

确保对象可以被垃圾收集

来自分类Dev

如何获取垃圾收集对象的统计信息?

来自分类Dev

垃圾收集函数中的对象数组

来自分类Dev

垃圾收集器尝试收集共享内存对象

Related 相关文章

热门标签

归档