0x000 概述
WeakMap
和Map
使用上類似,在特性上和Set
類似,和Map
相比,有一下特點
- 不可枚舉
-
WeakMap
的key
只能是對象 -
WeakMap
是弱引用,WeakMap
內的key
如果沒有引用,將會被垃圾回收機制回收
0x001 初始化
new WeakMap([[{},1]])
0x002 添加
let weakmap=new WeakMap()
weakmap.add({},"1")
weakmap.add({num:1},()=>{})
0x003 刪除
let obj={}
let weakmap=new WeakMap()
weakmap.add(obj,"1")
weakmap.add({},"2")
weakmap.delete(obj) //true
weakmap.delete({}) //false
0x004 包含
let obj={}
let weakmap=new WeakMap()
weakmap.add(obj,"1")
weakmap.has(obj)//true
weakmap.has({})//false
0x005 弱引用特性
let weakmap=new WeakMap([[{},1]])
setTimeout(()=>{console.log(weakmap)},3000)
// 3s後輸出一下內容,數據消失了
WeakMap {}