======================= 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 学习总结
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.