1、与Map
结构类似,也是用于生成键值对的集合。
2、区别:
WeakMap
只接受对象作为键名(null
除外),不接受其他类型的值作为键名。WeakMap
的键名所指向的对象,不计入垃圾回收机制。
3、如果你要往对象上添加数据,又不想干扰垃圾回收机制,就可以使用 WeakMap。
4、WeakMap 与 Map 在 API 上的区别主要是两个,一是没有遍历操作(即没有keys()
、values()
和entries()
方法),也没有size
属性。二是无法清空,即不支持clear
方法。WeakMap
只有以下四个方法可用:
get()
set()
has()
delete()