📅  最后修改于: 2023-12-03 14:42:27.900000             🧑  作者: Mango
在 JavaScript 中,WeakMap 是一种类似于 Map 的数据结构,不同的是它只能接受对象作为键名,并且键名所引用的对象是弱引用,即如果对象被回收,则对应的键值对也会被自动删除。
WeakMap.get()
方法用于获取对应键的值,如果键不存在,则返回 undefined
。
WeakMap.get(key)
key
: 必需。表示需要查找的键名。如果存在对应的 key
,则返回该键所对应的值,否则返回 undefined
。
let wm = new WeakMap();
let obj1 = {}, obj2 = {}, obj3 = {};
wm.set(obj1, "value1");
wm.set(obj2, "value2");
console.log(wm.get(obj1)); // "value1"
console.log(wm.get(obj2)); // "value2"
console.log(wm.get(obj3)); // undefined
我们首先创建了一个 WeakMap
对象 wm
,然后用 wm.set()
方法往 wm
中添加了两个键值对,分别是 {}
(即空对象)和 {}
,它们的值分别是 "value1"
和 "value2"
。
然后,我们分别用 wm.get()
方法获取了 obj1
、obj2
和 obj3
的值。由于 wm
中存在 {}
和 {}
类型的键名,所以我们能够通过 obj1
和 obj2
获得对应的值 "value1"
和 "value2"
。而由于 obj3
不在 wm
中,所以返回 undefined
。
除了 get()
方法之外,WeakMap 还提供了一系列的操作方法,如 set()
、has()
和 delete()
等,可以使开发者更加方便地操作 WeakMap
对象。