有没有办法在Javascript中创建任何其他弱引用的WeakMap来存储键值对,其中键是字符串/数字,值是Object。
引用必须是这样的:
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
我创建了一种树结构,它保存了当前作用域中仍然使用的引用的跟踪。
我会进行大量的合并,并且递归地清理深度嵌套的结构对于这个用例来说效率非常低。
答案 0 :(得分: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