WeakSet的使用

WeakSet的使用

Set和WeakSet的区别是set内部建议存放数组,WeakSet内部建议存放引用类型(数组和对象)

WeakSet和Set的区别:

  1. WeakSet中只能存放对象类型,不能存放基本类型
  2. WeakSet对元素的引用第弱引用,如果没有其他引用对某个对象进行引用,那么GC可以对该对象进行回收

虽然WeakSet内部建议存放对象,但是WeakSet初始化的时候也不能进行初始化赋值,必须使用add赋值

先来看set内部存放对象

 

 

 再来看WeakSet

let setObj = new WeakSet()
setObj.add({
  "a":1,
  "b":2
})
console.log(setObj);

 

 

 WeakSet是使用add方法进行的赋值,如果使用初始化赋值会报错

下面的代码会报错,不能初始化赋值对象

let setObj = new WeakSet({
  "a":1,
  "b":2
})

console.log(setObj);

 

 

 WeakSet的方法

WeakSet也是用add进行赋值的,但是内部接收的是引用类性质,不能是基本类型值

下面的代码会报错

let setObj = new WeakSet()
setObj.add('a')
console.log(setObj)

 

 

 使用引用类性质

let setObj = new WeakSet()
setObj.add({
  a:100
})
console.log(setObj)

 

 注意:WeakSet没有size属性,也没有clear方法,也不能使用for..of进行遍历

 

posted @ 2021-10-26 09:29  keyeking  阅读(201)  评论(0编辑  收藏  举报