本文主要是介绍jsWeakSet和WeakMap使用方法(含测试源码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Weak是柔弱的意思,WeakSet和WeakMap是弱化的Set和Map。它们与set和map的区别是:
- WeakSet中的元素和和WeakMap中的key都只能是对象类型(WeakMap的value可以是任意类型);
- WeakSet和WeakMap都没有size属性;
- WeakSet和WeakMap都没有clear方法;
- WeakSet和WeakMap都不可以遍历所包含的元素;
比如下面的例子:
测试代码
var set = new WeakSet();
var map = new WeakMap();var obj = {};
var fun = function(){};
set.add(obj).add(fun).add(Object).add(Function).add(Window);
map.set(obj,"object对象").set(fun,"function对象").set(window,"Window对象");//添加完之后进行size测试
console.log("size测试:");
console.log(set.size);
console.log(map.size);
//has测试
console.log("has测试:");
console.log(map.has(window));
console.log(set.has(obj));
//get测试
console.log("get测试:");
console.log(map.get(window));
//delete测试
map.delete(window);
console.log("delete测试:");
console.log(map.get(window));
测试效果
这篇关于jsWeakSet和WeakMap使用方法(含测试源码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!