在 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” 作为结果。