- WeakSet跟Setㄧ樣都是不重複值,可以接受陣列或類似陣列的iterable物件。
- WeakSet不能遍歷,其成員是弱引用,隨時可能消失,因為垃圾回收機制可能會因為在WeakSet裡頭的物件沒被引用,就回收掉它,所以要注意這點,如果有引用過,但後續沒使用到該值也忘記取消引用,就會產生記憶體無法釋放的問題。
WeakSet具有以下方法與屬性:
- add(object):僅接受物件,不返回值。
- has(object):查詢成員內有無該物件,返回布林值。
- delete(object):刪除成員內的某物件,返回布林值。
const ws =new WeakSet();
const aObj={a:'a'};
ws.add(aObj);
console.log(ws.has(aObj));
ws.delete(aObj);
console.log(ws.has(aObj));
程式碼