ES6中WeakMap和WeakSet

这里重点说一下它们和对应的set、map的区别

  • WeakSet
  1. 不能遍历,没有forEach,没有size
  2. 只能添加对象
  3. 垃圾回收器完全不考虑WeakSet对该对象的引用。
  • WeakMap
  1. 键只能是对象
  2. 它的键存储的地址不会影响垃圾回收。
let obj ={
            name: 'Tom',
            age: 20
        }
 let map  = new WeakMap();
 obj = null; // 当obj设置为空之后,obj指向的这块内存地址就会被垃圾回收器回收
 console.log(map);

打印结果如下,我们发现map中键值也没呢。
ES6中WeakMap和WeakSet_第1张图片

你可能感兴趣的:(ES6,js,前端,es6,jvm,前端)