WeakMap
WeakMap 是 Map 的弱引用,它也是在 Map 的基礎(chǔ)上有了一些限制和自己的特性话瞧。
- 沒有
size
屬性 - 不能循環(huán),沒有
clear
方法 -
key
只能是對(duì)象 - 如果元素在其他的地方?jīng)]有再引用的話寝姿,垃圾回收機(jī)制會(huì)自動(dòng)清理元素
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');
幾種使用場(chǎng)景
- 當(dāng)屬性一定只能是對(duì)象的時(shí)候
- 當(dāng)數(shù)據(jù)不可用交排,希望集合中相關(guān)的引用和數(shù)據(jù)都會(huì)被自動(dòng)回收,以達(dá)到優(yōu)化內(nèi)存的目的
- 需要對(duì)數(shù)據(jù)進(jìn)行循環(huán)饵筑,或獲取集合數(shù)量的時(shí)候最好還是用
map