javascript - 在替换之前删除属性会改变垃圾收集优先级吗?
问题描述
如果您要替换引用巨型对象的对象上的属性,那么在替换之前删除该属性是否有意义?
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
解决方案
delete
不会触发垃圾收集,但会将来自a
to的引用标记b
为已删除。您无法提前知道它是否会在您的delete
句子之后或稍后的某个时间(下一个 GC 循环)突然删除。
还请记住,这a.child
应该是对被 GC 标记为可收集的对象的唯一引用。
推荐阅读
- javascript - 如何从 Javascript 调用简单的 Node.js 脚本?
- android - 什么是 parcelable 以及为什么它用于 BluetoothDevice.EXTRA_DEVICE?
- python - 如何将 py 制作的 exe 文件从我的电脑更新给我发送给的人?
- reactjs - React:使用异步数据从父组件更新子组件状态
- python - 如何在 Python 中使用正则表达式获取字符串的一部分
- python - 在 pygame 中重置板给出属性错误
- c# - 写入另一个我读取数据包的程序的 TCP 流
- javascript - React & Redux - TypeError 状态不可迭代
- python - 如何制作这个 Python 模式?
- javascript - ws.write = (result.join(',') + '\n'); && TypeError: result.join is not a function ...我如何解决此类型错误