======================= WeakSet 和 WeakMap======================
let obj = {
name: 'twinkle',
age: 12
}
const s = new Set();
s.add(obj);
obj = null;
// 當不需要obj時候, set裏面的obj內存地址沒有變。不會進行垃圾回收,就是會影響垃圾回收
當使用weakSet的時候,obj 爲null了, 對應set 裏面的值也會變空。進行垃圾回收,垃圾回收不是即時的
let obj = {
name: 'twinkle',
age: 12
}
const s = new WeakSet();
s.add(obj);
obj = null;
weakSet: 使用該集合,可以實現和set一樣的功能,不同的是:
1. 它內部存儲的對象地址不會影響垃圾回收
2. 只能添加對象
3. 不能遍歷,沒有size, 沒有forEach, 不是可迭代對象
WeakMap:
類似map的結合,不同的是:
1. 它的鍵只能是對象
2. 不能遍歷,沒有size, 沒有forEach, 不是可迭代對象
3. 它內部存儲的對象地址不會影響垃圾回收
weakset和weakmap 學習總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.