📜  JavaScript WeakMap delete()方法(1)

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

JavaScript WeakMap delete()方法

在JavaScript中,WeakMap是一种基于对象的数据结构,用于存储对象的键值对,其中键是弱引用的。WeakMap的delete()方法用于删除指定键所对应的值,如果对应的键值对不存在则不会导致任何错误。

语法
myWeakMap.delete(key);
  • myWeakMap:被操作的WeakMap对象。
  • key:需要删除的键名。
返回值

delete()方法返回一个布尔值,表示是否删除成功。如果指定键名对应的键值不存在,则返回false,否则返回true

示例
//创建一个WeakMap对象并添加键值对
let myWeakMap = new WeakMap();
let obj1 = {};
let obj2 = {};
myWeakMap.set(obj1, 123);
myWeakMap.set(obj2, 'hello');

//删除一个存在的键值对
let result1 = myWeakMap.delete(obj1);
console.log(result1); // true

//删除一个不存在的键值对
let result2 = myWeakMap.delete({});
console.log(result2); // false

//再次删除已经删除的键值对
let result3 = myWeakMap.delete(obj1);
console.log(result3); // false

在上面的示例中,我们首先创建了一个空的WeakMap对象,并添加了两个键值对。然后通过delete()方法删除了一个已经存在的键值对和一个不存在的键值对,最后再次尝试删除已经被删除的键值对。在每个删除操作后,我们调用console.log()打印返回值来判断是否删除成功。

注意事项
  • WeakMap对象的键必须是对象,而不能是原始类型(例如数字、字符串等)。如果使用原始类型作为键,则会抛出TypeError。
  • WeakMap对象的值可以是任意类型,包括基本类型。
  • WeakMap对象是一种弱引用的数据结构,当某个对象的所有强引用被删除时,该对象就会被自动清除,对应的键值对也会随之从WeakMap中移除。因此,WeakMap一般用于存储一些临时性数据,通常不适用于存储持久化的数据。