3

有没有办法在 Javascript 中创建任何其他弱引用的 WeakMap 来存储键值对,其中键是字符串/数字,值是对象。

引用必须像这样工作:

const wMap = new WeakRefMap();
const referencer = {child: new WeakRefMap()}
wMap.set('child', temp.child);
wMap.has('child'); // true
delete referencer.child
wMap.has('child'); //false     

我创建了一种树结构,它跟踪当前范围内仍在使用的引用。

我会做很多合并,递归地清理一个深度嵌套的结构对于这个用例来说效率很低。

4

1 回答 1

1

您无法捕获删除操作。您可以做的是将数据封装在另一个对象中,例如

function referenceTo(value){
 this.value=value;
}

所以如果这个引用被删除了,就不能再访问了

var somedata=new referenceTo(5)
var anotherref=somedata;
//do whatever
delete somedata.value;
//cannot be accessed anymore
anotherref.value;//undefined
于 2017-07-19T19:18:47.740 回答