{
let wm = new WeakMap();
let key = { foo: 1 }
wm.set(key, 2)
console.log(wm.get(key))
let k1 = [1, 2]
let k2 = [3, 4]
let wm2 = new WeakMap([[k1, "foo"], [k2, "bar"]])
console.log(wm2.get(k2))
//区别
//WeakMap只接受对象作为键名
// let map = new WeakMap()
// map.set(1, 2)
// map.set(Symbol(), 2)
// map.set(null, 2)
//WeakMap的键名所指向的对象,不计入垃圾回收机制
let ele1 = document.getElementById("foo")
let ele2 = document.getElementById("bar")
// let arr = [
// [e1, "foo元素"],
// [e2, "bar元素"]
// ]
// arr[0]=null
// arr[1]=null
//WeakMap键名所指向的对象都是弱引用,垃圾回收机制不会将该引用考虑在内,
//只要所引用的对象的其他引用都被清除,垃圾回收机制就会释放该对象所占用的内存
let elewm = new WeakMap()
//elewm.set(ele1, "ele1 data")
//elewm.set(ele2, "ele2 data")
//WeakMap没有遍历操作( keys() values() entries()),也没有size属性
//WeakMap只有四个方法:get()、set()、has()、delete()
}