JavaScript - WeakMap delete() 方法



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

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

语法

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


 weakMapInstance.delete(key)

参数

此方法只接受一个参数。下面描述相同 -

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

返回值

此方法返回 Boolean 值作为结果。

示例 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.