- 閉包:就是能夠讀取外層函數(shù)內(nèi)部變量的函數(shù)。
- 閉包需要滿足三個條件:
- 訪問所在作用域;
- 函數(shù)嵌套;
- 在所在作用域外被調(diào)用 。
- 優(yōu)點(diǎn): 可以重復(fù)使用變量,并且不會造成變量污染 。
- 缺點(diǎn): 會引起內(nèi)存泄漏
- 使用閉包的注意點(diǎn):
- 由于閉包會使得函數(shù)中的變量都被保存在內(nèi)存中,內(nèi)存消耗很大,所以不能濫用閉包,否則會造成網(wǎng)頁的性能問題,在IE中可能導(dǎo)致內(nèi)存泄露。解決方法是,在退出函數(shù)之前,將不使用的局部變量全部刪除。
- 閉包會在父函數(shù)外部,改變父函數(shù)內(nèi)部變量的值。所以,如果你把父函數(shù)當(dāng)作對象 (object)使用,把閉包當(dāng)作它的公用方法(Public Method),把內(nèi)部變量當(dāng)作它的私有屬性(private value),這時一定要小心,不要隨便改變父函數(shù)內(nèi)部變量的值。