问题描述
我遇到过这个 WeakRef polyfill:ungap / weakrefs。
我正在努力理解它是如何工作的,尤其是在第 11-14 行:
var wr = new WeakMap;
function WeakRef(value) {
wr.set(this,value);
}
所以有一个全局 WeakMap wr
。
还有一个类似构造函数的函数 WeakRef
,它接受一个 value
并将其存储在 wr
中,使用 this
(the resulting object) 作为键。>
我的理解是 wr
全局 WeakMap 在删除键之前不会删除插入的 value
。在这种情况下,键是生成的 WeakRef 对象。
所以在创建的 WeakRef 被删除之前,value
不会被允许被 GC 处理。
这不会使 polyfill 成为强参考吗?
解决方法
It really is strong reference.
为什么他们不能在自述文件中提到这一点。或者至少让这个问题保持开放??