ES6学习——集合(Collections):WeakMap
来源:互联网 发布:php多维数组去除重复 编辑:程序博客网 时间:2024/06/06 19:43
WeakMap的概念在Java中一样存在,和Map的主要区别在于垃圾收集的处理不同。这个数据结构在规范的23.3章节中进行了描述。
WeakMap只有key是可GC的,并不是value,这里的概念可能和Java里的不同。
这里主要说一下和Map区别:
1)WeakMap的key必须是object,如果不是就会抛出异常
var wm = new WeakMap()wm.set(1,2)//Uncaught TypeError: Invalid value used as weak map key(…)wm.set({},1)
2)WeakMap没有clear方法
3)WeakMap没有size属性
因为它里面的记录可能被GC,无法进行统计。
4)WeakMap不是可iterable,所以和iterable一系列相关的方法都没有,例如values(),keys()等
看个简单的例子:
var m = new WeakMap();var x = { id: 1 },y = { id: 2 };m.set( x, y );x = null; // x可以GC了y = null; // y还是不可以GC
*以上全部代码在Chrome 47下通过测试
0 0
- ES6学习——集合(Collections):WeakMap
- ES6学习——集合(Collections):WeakMap 应用示例
- ES6学习——集合(Collections):Map API
- ES6学习——集合(Collections):Map 应用示例
- ES6学习——集合(Collections):Set API
- ES6学习——集合(Collections):Set 应用示例
- ES6学习——集合(Collections):WeakSet
- ES6学习——集合(Collections):Typed Arrays
- 从零开始学_JavaScript_系列(45)——ES6新增数据结构:Map和WeakMap
- ES6详解四: WeakMap
- es6 map和 weakmap
- underscore学习笔记—集合函数/collections(一)
- underscore学习笔记—集合函数/collections(二)
- 集合—Collections、Arrays
- es6 javascript 的WeakMap结构
- 黑马程序员—collections集合
- 黑马程序员—collections集合
- iOS学习笔记--浅拷贝和深拷贝——拷贝集合类(Copying Collections)
- 苹果Swift语言中文简明教程
- 常用 Git 命令清单
- Mybatis异常-SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL,
- 编程国际化
- 台式机与笔记本电脑BIOS启动热键
- ES6学习——集合(Collections):WeakMap
- JPA根据业务需求 过滤接口返回对象中的某些字段
- 斯坦福大学Andrew Ng教授主讲的《机器学习》公开课观后感
- UIWebView 字体大小、字体颜色、背景色
- window.open, window.resizeTo
- lazy懒加载(延迟加载)UITableView
- NaN+X:一个ExtJs的开发框架
- Oracle与Mysql的日期相减
- NSData与UIImage之间的转换