📅  最后修改于: 2023-12-03 14:42:27.892000             🧑  作者: Mango
JavaScript的WeakMap是ES6中的数据类型之一,它在功能上类似于Map,但有一些重要的区别。其中之一是WeakMap的键只能是对象,不能是原始值,另一个区别是,WeakMap中的键是被弱引用的,当键对象没有被引用时,它将被自动的垃圾回收,避免了内存泄漏的问题。WeakMap中的has()方法用于检测WeakMap实例中是否存在指定键对应的值。
myWeakMap.has(key);
key
:必选项,表示要查找的键值。true
;否则返回false
。下面是一个简单的示例,演示了如何使用WeakMap的has()方法检查对象是否存在。
const myWeakMap = new WeakMap();
const obj1 = { name: 'John' };
const obj2 = { name: 'Sara' };
myWeakMap.set(obj1, 32);
console.log(myWeakMap.has(obj1)); // true
console.log(myWeakMap.has(obj2)); // false
在这个示例中,我们首先创建了一个新的WeakMap实例myWeakMap
。然后,我们用set()
方法将一个对象obj1
绑定到一个数字32
上。接下来,我们使用has()
方法检查myWeakMap
中是否存在obj1
,输出为true
。然后,我们使用has()
方法检查myWeakMap
中是否存在obj2
,输出为false
。