JavaScript WeakSet对象的用途是什么

JavaScript WeakSet对象的用途是什么

介绍: JavaScript的WeakSet对象是一种允许我们存储只被宽松引用的项目的集合。WeakSet与Set不同,它只是一个项目的集合,不包含任意值。它与Set具有相同的特点,不包含重复值。WeakSet与Set的主要区别在于WeakSet是一组对象,而不是某种类型的值。它支持add、has和delete操作,类似于Set,但不支持size、keys()或迭代操作。

语法:

new WeakSet([iterable])  

参数:

  • iterable: 这是一个可迭代的对象,它的元素将被添加到一个新的WeakSet中。

使用WeakSet对象的优点

  • WeakSet的内容可以进行垃圾回收。
  • 可以降低内存利用率。
  • 对于类的标记非常有用。

WeakSet对象的特点:

  • WeakSet对象只包含唯一项。
  • 如果在WeakSet中没有对存储对象的引用,那么这个对象将被垃圾回收。
  • WeakSet中的项不可枚举。因此,它不提供任何获取所请求对象的机制。
  • 它支持add、has和delete等方法,但不支持size、keys()或迭代。

与WeakSet对象一起使用的方法:

  • add(value) 在这个方法中,value被追加到WeakSet对象中。
  • has(value) 它返回一个布尔值,指示WeakSet对象中是否存在该值。
  • delete(value) 这个方法从WeakSet中移除一个值。WeakSet.prototype.has(value)然后返回false。

示例1: 在这个示例中,我们将使用WeakSet()构造函数来构建新的WeakSet。这将生成一个新的WeakSet,然后您可以使用它来存储数据。当您使用它来构建一个新的WeakSet时,可以将包含value的可迭代对象作为参数传递给它。要确定给定对象是否存在于WeakSet中,请使用has(value)。

Javascript

const gfg = {}, 
geeks = {};   
const obj = new WeakSet([gfg, geeks]); 
  
// Checking if gfg exists 
console.log(obj.has(gfg));

输出结果:

true

示例2: 在这个示例中,我们将使用weakset构造函数创建一个WeakSet对象,然后使用add函数添加值。接着,我们验证了我们添加的对象是否存在。然后,使用delete方法从weakset中删除了对象,然后我们再次验证了对象是否成功删除。

Javascript

const obj = new WeakSet(); 
const gfg = {}; 
const geeks = {}; 
  
// gfg object added 
obj.add(gfg); 
console.log(obj.has(gfg)) // true 
console.log(obj.has(geeks)) // false 
  
// gfg object removed 
obj.delete(gfg); 
console.log(obj.has(gfg)) // false

输出:

true
false
false

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程