JavaScript WeakSet和WeakMap

JavaScript WeakSet和WeakMap

在JavaScript中,有两种类型的引用:强引用和弱引用。WeakSet和WeakMap被称为弱引用。由于这些是弱引用,如果它们是内存中对象的唯一引用,它们不会阻止垃圾回收。这些对象很少使用,但在我们希望自动管理内存使用时非常有用。

JavaScript WeakSet: 它用于存储一组对象,与set集合类似,唯一的区别是这些值只能是对象,而不是特定的数据类型。

语法:

new WeakSet(object)

示例: 在这个示例中,我们将创建一个新的WeakSet对象,并使用内置方法向其添加元素。

JavaScript

var x = new WeakSet(); 
var y = new WeakSet(null); 
x.add({}); 
x.add({}); 
console.log(x); 
console.log(y);

输出:

WeakSet {{…}, {…}}
WeakSet {}

JavaScript WeakMap: 在JavaScript中,WeakMap用于以键值对的形式存储值,但与其他类型的映射不同的是,键是弱引用方式。键始终应该是一个JavaScript对象,而值可以是任何原始的JavaScript数据类型。

示例: 在此示例中,我们将创建一个WeakMap对象并向其添加元素。

JavaScript

function myGeeks() { 
    var looseMap = new WeakMap(); 
    looseMap.set({}, "Ram"); 
    looseMap.set({}, "Raj"); 
    looseMap.set({}, "Rahul"); 
    console.log(looseMap); 
} 
myGeeks();

输出:

WeakMap {{…} => 'Raj', {…} => 'Rahul', {…} => 'Ram'}

如何选择?

WeakMap 用于创建类似于 Map 的结构,所以当数据需要以键值对的形式存储时,可以使用它。由于它是弱引用,所以仅在数据剩下的唯一引用是它自己时才使用它,这样数据就可以自动从内存中删除。当我们希望在对象集合中具有唯一值时,可以使用 WeakSet。WeakSet 的用法类似于 Set,而且它也是弱引用。

WeakSet WeakMap
它是一个只包含唯一对象的集合 它是一个包含键值对的集合
Map 是二维的 Set 是一维的
可以使用键来访问值 可以使用内置方法来访问值
键严格地只能是对象,而值可以是基本数据类型 它只能将对象作为值,而不能是其他基本数据类型

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程