【发布时间】:2022-08-15 11:11:50
【问题描述】:
根据 MDN,WeakMap 对象
不会创建对其键的强引用,因此任何值 WeakMap 也成为垃圾回收的候选对象——只要 它们在其他地方没有被强烈提及。
但是当我在 Chrome 中尝试下面的代码时,WeakMap 无法按预期工作:
const wm = new WeakMap() function foo(){ const key = {bar: 1}; const value = {bar: 2}; wm.set(key, value) } foo() console.log(wm)为什么 WeakMap 中还有对象?
-
垃圾回收不会在函数调用后立即执行,可能需要一些时间(甚至几分钟)才能清空 WeakMap。
标签: javascript