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. 它內部存儲的對象地址不會影響垃圾回收
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章