咨询电话:
15628812133
21
2023/06

走进es6|WeakMap和Map的区别|WeakMap结构

发布时间:2023-06-21 16:44:58
发布者:神棍子
浏览量:
0

SetWeakSet类似Map也有WeakMap结构,WeakMap结构Map结构大致相同,也是用于生成键值对的集合,方法也存在getset,形参中可以接受数组作为构造函数。

用法示例

由示例中可以发现一个问题,WeakMap中的键值都是用的Object作为键,因为WeakMap直接收对象作为键名,下图中可见,不论用数字、字符串都不能作为键,这也是与Map的区别之一

WeakMap特性

区别二就是WeakMap的键名所指的对象不会被垃圾回收机制处理。其意就是当外部dom或者对象消失时,WeakMap的键依然可以正常使用。

语法却别一是没有遍历器,所以循环操作都没办法使用,例如keysvalues等,也没有size属性,因为垃圾处理机制的问题所以键名也无法清空,取消了clear方法,所以WeakMap只有四个方法:getsethasdelete

WeakMap经常用在dom节点中,假设我们将点击后更新状态放入WeakMap中,对应的饿键名就是当前dom,一旦这个dom节点被删除,这个状态就会自动消失,不存在内存泄漏问题,此外运用于监听事件也比较方便,当dom消失监听事件也随之消失


关键词:
返回列表