WeakMap 对象是一组键/值对的集合,其中的键是弱引用的。其键必须是对象,而值可以是任意的。
例子:
const data = {};
function fn() {
const obj = { a: 1 }; // 不会被释放
// const obj2 = 1;
data.obj = obj;
}
fn();
console.log(data.obj);
const map = new Map();
function fn1() {
const obj = {a: 1}; // 不会被释放
map.set('a', obj);
}
fn1()
const weakMap = new WeakMap(); // 弱引用,防止JS内存泄漏
function fn2() {
const obj = {a: 1}; // 会被释放
weakMap.set(obj, 100); // weakmap的key只能是引用类型
}
weakMap.get(); // 没有forEach、size方法,因为它自己都不知道有多少个
fn2()
附:参考链接