如何理解JavaScript中的WeakMap
WeakMap对象存储键值对。键应为对象,并且值可以是任意类型。在JavaScript中,可以使用2个数组来创建一个map API,一个用于存储键,一个用于存储值,这两个数组被四个API函数共享。设置map中的元素时,需要同时将键和值插入到这两个数组的顶部。因此,键和值的索引将对应于每个数组中的元素。
要从map中获取值,需要通过循环遍历所有键,直到找到匹配的键,然后使用该键的索引从值数组中提取相关项。Map和WeakMap之间的区别在于,键必须是对象且仅被弱引用。这意味着如果没有其他强引用指向键,则垃圾回收器可以删除WeakMap中的元素。
语法:
参数: WeakMap对象接受一个参数,可以是任何可迭代对象。例如,一个包含键/值对的数组。
示例1:获取与键相关的值- 使用 get()函数 来检索与键相关联的值。如果与键相关联的值不存在,则返回undefined。
Javascript
输出:
示例2:对键进行赋值 – 使用 .set() 函数 将一个值赋给键。它返回WeakMap对象,允许您链接.set()命令。
JavaScript
输出结果:
示例3:验证是否存在具有特定键的元素 – 使用 .has()函数 来检查WeakMap中是否存在具有相同键的元素。若存在,则返回true;否则返回false。
Javascript
输出:
示例4:使用键删除元素 – 使用.delete()方法删除具有精确键的元素。如果组件存在并被删除,则返回true;否则返回false。
Javascript
输出: