什么是閉包?
一個簡單的閉包如下:
function a(){
var i=10;
return function b(){
console.log(i)
}
}
var c=a();//運行此處回傳的是b函式
c();//執行b函式
從此處可以看出,其實閉包一句話總結就是:函式嵌套函式,然后外部函式能夠獲取到函式內部的私有資料;
那么閉包的好處是什么呢?
好處:
其實,在函式外部我們想獲取函式內部的變數,資料這些,是無法獲取到的,而閉包正好滿足了這一點,所以,閉包最大的好處就是,能夠在函式外部獲取到函式內部的私有資料,這些變數和資料會一直存在函式中,不會在呼叫函式之后被垃圾回識訓制回收,
壞處:
而由于函式的私有資料會一直存在記憶體中,這也將導致記憶體過多,記憶體消耗大,造成記憶體泄漏
所以,我們不應該濫用閉包,而為了解決這一缺點,我們可以在退出函式之前,將區域變數洗掉掉
這是我個人的一些學習筆記,可能有不對的地方,大神勿噴哈!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/111878.html
標籤:JavaScript
上一篇:拯救一切強迫癥 - 讀《撰寫可維護的 JavaScript》(一)
下一篇:ES6---繼續RESTful
