我遇到过这个 WeakRef polyfill:ungap / weakrefs .
我很难理解它是如何工作的,尤其是第 11-14 行:
var wr = new WeakMap;
function WeakRef(value) {
wr.set(this, value);
}
所以有一个全局的 WeakMap wr
。
还有一个类似于构造函数的函数WeakRef
,它接受一个值
并将其存储在wr
中,使用this
( the resulting object ) 作为键。
我的理解是 wr
全局 WeakMap 不会删除插入的 value
直到键被删除。在这种情况下,键是生成的 WeakRef 对象。
所以 value
在创建的 WeakRef 被删除之前不允许被 GC-ed。
这不会使 polyfill 成为强引用吗?
最佳答案
It really is strong reference.
为什么他们不能在自述文件中提及这一点。或者至少让提到这个的问题保持开放状态??
关于javascript - 理解这个 JS WeakRef polyfill 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65976907/