ES6 -- WeakSet 和 WeakMap 集合

WeakSet

使用该集合,可以实现和 set 一样的功能,不同的是:

  1. 它内部存储的对象地址不会影响垃圾回收。

  2. 只能添加对象。

  3. 不能遍历,没有size属性,没有forEach方法。

let obj = {
    name: 1,
    age: 2
}

// const s = new Set(); // Set(1) {{…}}

const s = new WeakSet(); // WeakSet {{…}}

s.add(obj);

obj = null;

console.log(s);

WeakMap

类似于 map 集合,不同的是:

  1. 它的键存储不会影响垃圾回收。

  2. 它的键只能是对象。

  3. 不能遍历(不是可迭代的对象),没有size属性,没有forEach方法。

你可能感兴趣的:(ES6 -- WeakSet 和 WeakMap 集合)