SOURCE

// WeakMap 结构和Map类似,但是接收的参数只能是对象(null除外);且没有垃圾回收机制
// WeakMap弱引用的只是键名,键值依然是正常引用
// WeakMap没有size属性,所以也不能进行遍历
let wm = new WeakMap()

// WeakSet.set(key,value) key需要是一个对象
wm.set({},{"name":"lisa"}) 
wm.set({name:1},11)
console.log(wm)  // WeakMap {{…} => 11, {…} => {…}}
console.log(wm.size)  // undefined

// 由于键名无法清除,WeakMap 只有四个方法可用  get() set() has() delete()
console 命令行工具 X clear

                    
>
console