JavaScript - WeakMap delete() 方法



在 JavaScript 中,WeakMap.delete() 方法用于从 WeakMap 中删除指定的元素。

此方法接受一个参数:"key",表示要从 WeakMap 对象中删除的键值对。当调用此方法时,它会检查 WeakMap 对象中是否存在指定的键,如果找到,则会从 Map 中删除相应的键值对并返回 "true"。但是,如果在 WeakMap 对象中找不到指定的键,则此方法返回 "false"。

语法

以下是 JavaScript WeakMap.delete() 方法的语法:

weakMapInstance.delete(key)

参数

此方法只接受一个参数。如下所述:

  • key − 要删除的键值对的键。

返回值

此方法返回布尔值作为结果。

示例

示例 1

在下面的示例中,我们使用 JavaScript WeakMap.delete() 方法从 WeakMap 中删除单个键值对:

<html>
<body>
   <script>
      let weakMap = new WeakMap();
      let key = { id: 1 };
      weakMap.set(key, "apple");
      document.write(weakMap.delete(key), "<br>");
      document.write(weakMap.has(key));
   </script>
</body>
</html>

删除后,has() 方法检查键是否仍然存在,返回 "false"。

示例 2

在此示例中,delete() 方法被调用两次以删除两个键值对:

<html>
<body>
   <script>
      let weakMap = new WeakMap();
      let key1 = { id: 1 };
      let key2 = { id: 2 };
      weakMap.set(key1, "apple");
      weakMap.set(key2, "banana");
      
      document.write(weakMap.delete(key1), "<br>"); //true
      document.write(weakMap.delete(key2), "<br>"); //true
      
      document.write(weakMap.has(key1), "<br>"); //false
      document.write(weakMap.has(key2)); //false
   </script>
</body>
</html>

两次删除后,has() 方法检查键是否仍然存在,返回 "false"。

示例 3

在下面的示例中,delete() 方法在一个 WeakMap 中不存在的键上调用:

<html>
<body>
   <script>
      let weakMap = new WeakMap();
      let key = { id: 1 };
      document.write(weakMap.delete(key));
   </script>
</body>
</html>

如果执行上述程序,它将返回 false。

广告