WeakMap
WeakMap 是 Map 的弱引用,它也是在 Map 的基础上有了一些限制和自己的特性。
- 没有
size
属性 - 不能循环,没有
clear
方法 -
key
只能是对象 - 如果元素在其他的地方没有再引用的话,垃圾回收机制会自动清理元素
let dp = {name:dp};
let tms = {name:tms};
const strong = new Map();
const weak = new WeakMap();
strong.set(dp , 'dp is best');
weak.set(tms , 'tms is beautiful');
几种使用场景
- 当属性一定只能是对象的时候
- 当数据不可用,希望集合中相关的引用和数据都会被自动回收,以达到优化内存的目的
- 需要对数据进行循环,或获取集合数量的时候最好还是用
map