JavaScript閉包

JS的閉包,聽起來很熟悉,而且基本上是面試必問的問題,那么什么是閉包呢?首先我們來看一段代碼:

function a(){
    var num = 0;
    return function(){
        return ++num;
    }
}
var b = a();//b=function(){return ++num};
console.log(b());//1
console.log(b());//2
console.log(b());//3

函數(shù)的作用域,不取決于運行時的環(huán)境,
而取決于函數(shù)聲明時的環(huán)境.
所以這里調(diào)用b(),num會加。
閉包的缺點:由于閉包會使得函數(shù)中的變量都被保存在內(nèi)存中,內(nèi)存消耗很大,所以不能濫用閉包,否則會造成網(wǎng)頁的性能問題,在IE中可能導致內(nèi)存泄露。解決方法是,在退出函數(shù)之前,將不使用的局部變量全部刪除。

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

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

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