閉包

  • 閉包的概念 :閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù) 只有函數(shù)內(nèi)部的子函數(shù)才能讀取局部變量,因此可以把閉包簡單理解成"定義在一個函數(shù)內(nèi)部的函數(shù)" 所以,在本質(zhì)上,閉包就是將函數(shù)內(nèi)部和函數(shù)外部連接起來的一座橋梁。

  • 閉包的使用場景:一個是可以讀取函數(shù)內(nèi)部的變量,另一個就是讓這些變量的值始終保持在內(nèi)存中(因為堆棧的棧里面 會自動清理沒有調(diào)用的變量 而閉包可以讓未使用的變量保存下去)

  • 閉包的問題:由于閉包會使得函數(shù)中的變量都被保存在內(nèi)存中,內(nèi)存消耗很大,所以不能濫用閉包,否則會造成網(wǎng)頁的性能問題,在IE中可能導(dǎo)致內(nèi)存泄露。
    解決方法是:在退出函數(shù)之前,將不使用的局部變量全部刪除。


function aa(){
              var bs = "name"
              return function(name){
                    //  console.log(bs)
                    bs = name
                    console.log(bs) //undefined
                }
         }
        //  console.log(bs) // 報錯,bs is not defined
        // aa()()

        let option = aa()
        option("zhangsan")  //zhangsan
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 閉包(closure)是Javascript語言的一個難點,也是它的特色,很多高級應(yīng)用都要依靠閉包實現(xiàn)。 一、變量...
    風(fēng)蕭蕭易水寒_1196閱讀 310評論 0 0
  • 本章將會介紹 閉包表達式尾隨閉包值捕獲閉包是引用類型逃逸閉包自動閉包枚舉語法使用Switch語句匹配枚舉值關(guān)聯(lián)值原...
    寒橋閱讀 1,629評論 0 3
  • 一、閉包是什么? ??閉包(closure)就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。在javascript中,只有函數(shù)...
    懿左左閱讀 721評論 0 6
  • 我走進夏季的原野 在柔軟的草甸上 踩碎一朵朵小花 讓風(fēng)送往天涯 途經(jīng)牛羊 有的休憩有的反芻 神情悠悠 閑適而自由 ...
    粟芒閱讀 298評論 0 4
  • 也是因為徐經(jīng)理,我知道簡書這個軟件,他明天晚上都會在簡書寫一些東西,我覺得堅持一件事情真的好不容易。我也要從今天開...
    wh從現(xiàn)在開始閱讀 193評論 0 0

友情鏈接更多精彩內(nèi)容