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中键值也没呢。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42931285/article/details/132946302