ECMAScript 6有非常类似的集合:Set和WeakSet。他们之间有什么区别?
发布于 2017-04-10 09:47:29
主要的区别是集合中对对象的引用是强的,而在WeakSet中对对象的引用是弱的。这意味着,如果没有其他对对象的引用,则可以垃圾收集WeakSet中的对象。
其他的区别(或者更确切地说是副作用)是:
发布于 2018-10-25 20:19:16
摘要:
Weakset是javascript对象,它包含对象的集合。由于集合的性质,在集合中只能出现同一对象的一个对象引用。Weakset与普通集有以下不同之处:
int、boolean、string)。WeakSet之外没有对对象的其他引用时,就可以垃圾收集对象(即JS引擎将释放引用指向的对象的内存)。示例:
let myWeakSet = new WeakSet();
let obj = {};
myWeakSet.add(obj);
console.log(myWeakSet.has(obj));
// break the last reference to the object we created earlier
obj = 5;
// false because no other references to the object which the weakset points to
// because weakset was the only object holding a reference it released it and got garbage collected
console.log(myWeakSet.has(obj));
发布于 2018-05-27 17:46:37
集:-集合是值的集合,每个值只能出现一次。主要的方法有添加、删除、有、清晰和大小。
WeakSet :- WeakSet对象允许存储唯一密钥的集合。“WeakSet”键不能是原始类型。它们也不能由数组或另一组创建。WeakSet的值必须是对象引用。
https://stackoverflow.com/questions/43319924
复制相似问题