ES6新增数据结构WeakSet的用法详解

  

WeakSet和集合类似,同样是元素不重复的集合,它们的区别是WeakSet内的元素必须是对象,不能是其它类型。

  

  

1。元素必须是对象。

  

添加一个数字类型的元素。

        const ws=new WeakSet ()   ws.add (1)      

结果是报类型错误。

  

TypeError:无效的值用于弱设置
  

  

添加一个对象。

        const ws=new WeakSet ()   var={p2: p1: ' 1 ', ' 2 '}   ws.add (a)   console.log (ws.has ());      

添加好,结果显示:

  

真的   

可以通过WeakSet的已方法判断一个元素是否已在集合中。

  

如果不需要存储元素时,可以使用删除方法删除元素。

  

<强> 2。弱引用,不被计入垃圾回收

  

添加进WeakSet的元素对象,WeakSet不会对元素对像的引用计数加1,对于被添加进WeakSet的元素对象,只要该元素对象没有被除WeakSet以外的其他对象引用,就会被垃圾回收释放,在WeakSet中的该元素对象自动被释放,不会出现内存泄漏。

  

因为这一特性,其性能要比图要高,对于存储无顺序要求的,不重复的,临时存储的场景,可以使用它。

        const ws=new WeakSet ()   var={p2: p1: ' 1 ', ' 2 '}   ws.add (a)   一个=零   console.log (ws.has ());      

先将对象添加到WeakSet中,然后将对象设成空,然后再下面的已方法判定时,结果显示,表示WeakSet中已经不存在该对象。

  

假   

<强> 3。不能遍历

  

因为其对内部的元素对象是弱引用,随时会被垃圾回收释放掉,所以其不支持大小和forEach等遍历方法。

  

  

以上所述是小编给大家介绍的ES6新增数据结构WeakSet的用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

ES6新增数据结构WeakSet的用法详解