weakset和weakmap 学习总结

  ======================= WeakSet 和 WeakMap======================
       let obj = {
            name: 'twinkle',
            age: 12
        }

        const s = new Set();
        s.add(obj);

        obj = null;
        // 当不需要obj时候, set里面的obj内存地址没有变。不会进行垃圾回收,就是会影响垃圾回收

        当使用weakSet的时候,obj 为null了, 对应set 里面的值也会变空。进行垃圾回收,垃圾回收不是即时的
        let obj = {
            name: 'twinkle',
            age: 12
        }

        const s = new WeakSet();
        s.add(obj);

        obj = null;

        weakSet: 使用该集合,可以实现和set一样的功能,不同的是:
         1. 它内部存储的对象地址不会影响垃圾回收
         2. 只能添加对象
         3. 不能遍历,没有size, 没有forEach, 不是可迭代对象

         WeakMap:
          类似map的结合,不同的是:
           1. 它的键只能是对象
           2. 不能遍历,没有size, 没有forEach, 不是可迭代对象
           3. 它内部存储的对象地址不会影响垃圾回收
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章