重學ES6 Set 數據結構(2)

WeakSet

WeakSet 和 Set結構相似,也是不重複的值的集合。可是與Set有兩個區別:javascript

  • WeakSet成員只能是對象,不能是其餘類型的值。
  • WeakSet中的對象都是弱引用,即垃圾回收機制不會考慮WeakSet對該對象的引用,若果其餘對象都再也不引用該對象,垃圾回收機制會自動回收該對象所佔的內存,不考慮對象是否還存在於WeakSet之中。
const b = [3,4];
const ws = new WeakSet(b);
// error
複製代碼

稱爲wekeset 成員的是b數組的成員,而不是b數組自己,那麼意味着,數組的成員也只能是對象。java

方法

  • WeakSet.prototype.add(val):添加一個新成員
  • WeakSet.prototype.delete(val):清除指定實例成員
  • WeakSet.prototype.has(val):返回布爾值,表示某個值是否存在於weakSet

用處

一個用處是存儲DOM節點,不用擔憂這些節點從文檔移除時引起內存泄漏。數組

相關文章
相關標籤/搜索