Javascript 垃圾收集器会删除未使用的 key/value 对吗?

Does the Javascript garbage collector delete unused key/value pairs?

我有一个 websocket 系统,其中有一个名为 sessions 的对象,键是会话的名称,值是使用 ws js 库时的 websocket 数组。我想知道垃圾收集器是否像旧会话一样自动删除未使用的 key/value 对,或者我是否必须使用 delete 关键字手动删除。

没有

垃圾回收将在没有引用时清理值。

引用可以是对象属性或变量。

仅当变量或 属性 被新值覆盖、属性 明确 deleted 或变量超出范围 (例如函数如果它在内部声明完成而不返回闭包)。


在你的例子中:

sessions 将是对您的对象的引用。它不会消失,因为您始终可以参考您的会话集合。

在该对象内部,指向数组的属性不会消失,因为该对象仍然存在。

如果要删除对象的值之一,则需要明确执行。