深度剖析js閉包

一、什麼是閉包?

  • 方法裡面返回一個方法

  

二、閉包存在的意義

  • 延長變數的生命周期

    • 作用域鏈

      

 

    • 溝通內外部方法的橋樑

       

    • 閉包會常駐記憶體  ==》慎用閉包  閉包里的變數不會被回收

 

  • 創建私有環建

    • 例:Vue data() 為什麼是一個函數?

      data(){
        return {
        }
       }

   因為 vue 是個單頁應用,有很多對應的組件,每個組件都會有一個 data,通過閉包給每個組件都建了一個私有域空間