📜  JavaScript WeakMap set()方法(1)

📅  最后修改于: 2023-12-03 15:01:39.141000             🧑  作者: Mango

JavaScript WeakMap set()方法

在JavaScript中,WeakMap对象是一种特殊的映射(Map)类型,它可以用于存储键值对,并且只能使用对象作为键。WeakMap提供了set()方法,可以用于向WeakMap实例中添加新的键值对。

语法
weakMap.set(key, value)
  • key: 必需,用于作为键的对象。
  • value: 必需,与键关联的值。
返回值

set()方法返回更新后的WeakMap对象。注意,WeakMap对象是可变的,因此使用set()方法后会改变原始对象。

示例

以下示例演示了如何使用set()方法向WeakMap添加新的键值对:

const weakMap = new WeakMap();

const key1 = { name: "John" };
const value1 = { age: 30 };

const key2 = { name: "Jane" };
const value2 = { age: 25 };

weakMap.set(key1, value1);
weakMap.set(key2, value2);

在上面的示例中,我们创建了一个新的WeakMap对象 weakMap。然后,我们定义了两个键值对,分别使用对象 key1key2 作为键,对象 value1value2 作为值。最后,我们使用set()方法将键值对添加到weakMap中。

注意事项
  • WeakMap中的键必须为对象。如果你使用非对象作为键,则会引发TypeError错误。
  • WeakMap是弱引用的。这意味着当键对象不再被引用时,键值对将被自动清除,且无法通过迭代器或.size属性获取WeakMap的大小。
  • WeakMap的键是不可枚举的,因此无法使用for...of循环或forEach()方法遍历键值对。
结论

WeakMapset()方法允许我们向WeakMap对象中添加新的键值对。与Map相比,WeakMap更适用于需要将对象作为键的场景,并且具备自动垃圾回收的特性。使用WeakMap可以更加安全地存储和检索私有数据,并且可以避免内存泄漏的风险。