ES6学习——集合(Collections):WeakSet

来源:互联网 发布:盘古建站 源码 编辑:程序博客网 时间:2024/06/06 18:10

我们已经讲过WeakMap的概念了,同理对应的Set还有个WeakSet,在规范的23.4章节。WeakSet只能添加对象类型,并且有一些方法和Set有差异,简单说明一下差异性:

1)WeakSet只能放入object类型

var ws = new WeakSet()ws.add(0)//Uncaught TypeError: Invalid value used in weak set(…)ws.add({})

2)WeakSet没有clear方法

3)WeakSet没有size属性

4)WeakSet不是可iterable,所以和iterable一系列相关的方法都没有,例如values(),keys()等


看个简单的例子:

var s = new WeakSet();var x = { id: 1 },y = { id: 2 };s.add( x ).add( y );x = null; // x可被GC收集了y = null; // y可被GC收集了


*以上全部代码在Chrome 47下通过测试

0 0
原创粉丝点击