WeakSet(弱集合)是JavaScript中一种特殊的数据结构,它用于存储对象,但不像普通集合(Array或Object)那样占用大量内存。WeakSet的特点是,它只会存储对象的引用,当对象被析构(如垃圾回收)时,相关的WeakSet元素也会自动删除。这使得WeakSet在内存管理方面具有优越性,尤其适用于存储大量动态创建的对象。
以下是WeakSet的基本用法:
1. 创建WeakSet:
```javascript
const weakSet = new WeakSet();
```
2. 添加元素:
```javascript
weakSet.add(obj1);
weakSet.add(obj2);
// 添加多个元素
```
注意:WeakSet不允许添加重复的元素。
3. 检查元素是否在WeakSet中:
```javascript
if (weakSet.has(obj)) {
  console.log("元素存在于WeakSet中");
} else {
  console.log("元素不存在于WeakSet中");
}
```
4. 删除元素:
```javascript
weakSet.delete(obj);
```
5. 获取WeakSet的大小:
```javascript
console.log(weakSet.size);
```
6. 清空WeakSet:
```javascript
weakSet.clear();
```
7. 遍历WeakSet:
```javascript
weakSet.forEach(function (item, index) {
  console.log(item);javascript基本特点
});
```
示例:
```javascript
// 创建一个WeakSet
const weakSet = new WeakSet();
// 添加元素
weakSet.add({ obj1: "obj1" });
weakSet.add({ obj2: "obj2" });
// 检查元素是否存在
console.log(weakSet.has({ obj1: "obj1" })); // 输出:true
console.log(weakSet.has({ obj3: "obj3" })); // 输出:false
// 删除元素
weakSet.delete({ obj1: "obj1" });
console.log(weakSet.has({ obj1: "obj1" })); // 输出:false
// 遍历WeakSet
weakSet.forEach(function (item, index) {
  console.log(item);
});
```