📅  最后修改于: 2023-12-03 14:41:00.822000             🧑  作者: Mango
在 ES6 中,新增了一种数据结构称为弱映射(WeakMap)。弱映射是一种类似于 Map 的数据结构,但是相比之下有一些特殊的特性。
keys()
, values()
, entries()
, forEach()
等。因为键对象可能随时被垃圾回收,这些方法在迭代时可能会出现不可预期的行为。get(key)
, set(key, value)
, delete(key)
, has(key)
。弱映射的特点使得它在一些特定的应用场景下十分有用:
// 创建一个弱映射
const weakMap = new WeakMap();
// 创建两个键对象
const object1 = {};
const object2 = {};
// 添加键值对到弱映射中
weakMap.set(object1, "Value 1");
weakMap.set(object2, "Value 2");
// 从弱映射中获取值
console.log(weakMap.get(object1)); // 输出: "Value 1"
// 检查键是否存在于弱映射中
console.log(weakMap.has(object2)); // 输出: true
// 删除键值对
weakMap.delete(object1);
// 检查键是否存在于弱映射中
console.log(weakMap.has(object1)); // 输出: false
以上示例展示了如何创建和使用弱映射,以及如何添加、获取和删除键值对。
总之,弱映射是 ES6 提供的一种特殊的数据结构,它在一些特定的应用场景下能够提供便利和性能优化,特别是在缓存管理和对象私有属性存储方面。