码迷,mamicode.com
首页 > 其他好文 > 详细

WeakMap

时间:2020-03-25 10:35:16      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:ali   数值   存在   each   对象   style   函数   bsp   value   

WeakMap结构与Map结构类似,用于生成键值对的集合。

// WeakMap 可以使用 set 方法添加成员
const wm1 = new WeakMap();
const key = {foo: 1};
wm1.set(key, 2);
wm1.get(key) // 2

// WeakMap 也可以接受一个数组,
// 作为构造函数的参数
const k1 = [1, 2, 3];
const k2 = [4, 5, 6];
const wm2 = new WeakMap([[k1, ‘foo‘], [k2, ‘bar‘]]);
wm2.get(k2) // "bar"

WeakMapMap的区别 

WeakMap只接受对象作为键名(null除外),不接受其他类型的值作为键名
const map = new WeakMap();
map.set(1, 2) // 如果将数值1Symbol值作为 WeakMap 的键名,都会报错
// TypeError: 1 is not an object!
map.set(Symbol(), 2)
// TypeError: Invalid value used as weak map key
map.set(null, 2) 
// TypeError: Invalid value used as weak map key
没有遍历操作(即没有keys()values()entries()方法),也没有size属性  
const wm = new WeakMap();

// size、forEach、clear 方法都不存在
wm.size // undefined
wm.forEach // undefined
wm.clear // undefined

  

 

WeakMap

标签:ali   数值   存在   each   对象   style   函数   bsp   value   

原文地址:https://www.cnblogs.com/blogZhao/p/12564263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!