首页 > 解决方案 > 在替换之前删除属性会改变垃圾收集优先级吗?

问题描述

如果您要替换引用巨型对象的对象上的属性,那么在替换之前删除该属性是否有意义?

const a = {
  child: b //Reference to big object
}
delete a.child;
a.child = c; //Another big object

对比

const a = {
  child: b //Reference to big object
}
a.child = c; //Another big object

标签: javascriptnode.js

解决方案


delete不会触发垃圾收集,但会将来自ato的引用标记b为已删除。您无法提前知道它是否会在您的delete句子之后或稍后的某个时间(下一个 GC 循环)突然删除。

还请记住,这a.child应该是对被 GC 标记为可收集的对象的唯一引用。


推荐阅读