JavaScript - WeakMap.set() 方法



在 JavaScript 中,WeakMap.set() 方法用于在 WeakMap 对象中添加或更新键值对。

该方法采用 “key” 和 “value” 两个参数。如果 WeakMap 中已存在该键,则与该键关联的值将更新为提供的新值。如果 key 不存在,则会向 WeakMap 添加新的 key-value 对。此方法返回 WeakMap 对象本身,允许方法链接。

此方法几乎兼容所有浏览器,例如 Chrome、Edge、Firefox、Opera 和 Safari。

语法

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


 set(key, value)

参数

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

  • key − 它是必须在 WeakMap 对象中添加或更新的 key。
  • value − 它是必须在 WeakMap 对象中添加或更新的值。

返回值

此方法的返回值是 WeakMap 对象本身,允许方法链接。

示例 1

在下面的示例中,我们使用 JavaScript WeakMap.set() 方法向 WeakMap 对象添加新的键值对 -


<html>
<body>
   <script>
      const weakMap = new WeakMap();
      const key = { id: 1 };
      
      weakMap.set(key, 'varun');
      document.write(weakMap.get(key))
   </script>
</body>
</html> 

执行上述程序后,它将返回与提供的键 (“key”) 关联的值 (“varun”) 作为结果。

示例 2

在下面的示例中,我们将多个键值对添加到一个空的 WeakMap 对象中 -


<html>
<body>
   <script>
      const weakMap = new WeakMap();
      const key1 = { id: 1 };
      const key2 = { id: 2 };
      const key3 = { id: 3 };
      
      weakMap.set(key1, 'varun');
      weakMap.set(key2, 'rohit');
      weakMap.set(key3, 'zayn');
      
      document.write(weakMap.get(key1), "<br>")
      document.write(weakMap.get(key2), "<br>")
      document.write(weakMap.get(key3))
   </script>
</body>
</html>

因此,它将返回与提供的键(“key1”、“key2”、“key3”)关联的所有值(“varun”、“rohit”、“zayn”)。

示例 3

在此示例中,我们将使用 JavaScript set() 方法更新现有键的值 -


<html>
<body>
   <script>
      const weakMap = new WeakMap();
      const key = { id: 1 };
      
      weakMap.set(key, 'varun');
      weakMap.set(key, 'rohit');
      weakMap.set(key, 'nikhil');
      
      document.write(weakMap.get(key))
   </script>
</body>
</html> 

结果,它将返回键 “1” 新插入的 “value” (nikhil)。

示例 4

在这里,set() 方法被链接起来,以在单个语句中将多个键值对添加到空的 WeakMap 对象中 -


<html>
<body>
   <script>
      let weakMap = new WeakMap();
      let key1 = {};
      let key2 = {};
      let key3 = {};
      
      weakMap.set(key1, 'apple').set(key2, 'banana').set(key3, 'cherry');
      
      document.write(weakMap.get(key1), "<br>");
      document.write(weakMap.get(key2), "<br>");
      document.write(weakMap.get(key3));
   </script>
</body>
</html>

如果我们执行上述程序,它会返回所有 key 的 “values” 作为结果。