强引用:
只要引用存在,垃圾回收器永远不会回收。
弱引用:
会垃圾回收机制回收。
{
let x = {
a:[1,2]
};
var map = new Map();
map.set(x,'something');
}
console.log(map);
map是在{}这样的一个scope中定义的,但是map属于"强引用" ,不会被辣鸡回收机制回收,所以这里是可以打印出map的。
扫描二维码关注公众号,回复:
1454119 查看本文章
{
let x = {
a:[1,2]
};
var map = new WeakMap();
map.set(x,'something');
}
console.log(map);
WeakMap属于弱引用,其中的entriy会被辣鸡回收机制回收,所以这里打印出的map中长度是0。 (注意这里map变量没有被回收,因为用的是var)