概述weakset和set差不多,但是有一些不同:
weakset只能存储对象,不能存储任意值
weakset不可迭代
weakset是弱引用,也就是如果没有变量引用weakset内的值,很容易被回收
初始化 new weakset([iterable]);
因为只能存储对象,所以这里我想只能传入类似对象数组之类的东西
对象数组
new weakset([{name:1},{name:2}]) //weakset(2){{name:1},{name:2}}
添加let weakset=new weakset()weakset.add({num:1})weakset.add({num:2})
判断是否已经有了let data={num:1}let weakset=new weakset()weakset.add(data)weakset.add({num:2})weakset.has(data) //trueweakset.has({num:2}) //false
删除let data={num:1}let weakset=new weakset()weakset.add(data)weakset.add({num:2})weakset.delete(data) //trueweakset.delete({num:2}) //false
弱引用特性let weakset=new weakset([{num:1}])settimeout(()=>console.log(weakset),3000)// 3s 后输出,可以看到,数据没了weakset {}
以上就是es6中weakset的简单介绍的详细内容。
