首先使用閉包就是為了設(shè)計(jì)私有的方法或者變量,即一個函數(shù)引用了外部環(huán)境的變量。
避免了全局變量污染。
常駐內(nèi)存,使用不當(dāng)就會內(nèi)存泄露,在js中函數(shù)即閉包(只有函數(shù)才有作用域 的概念)
內(nèi)存的泄露:程序的運(yùn)行需要內(nèi)存,對于持續(xù)運(yùn)行的進(jìn)程,必須及時釋放不再用到的內(nèi)存,否則可能導(dǎo)致系統(tǒng)崩潰,不再用到的內(nèi)存沒有及時釋放掉,就叫有內(nèi)存泄露。
閉包的三個特性:
- 函數(shù)嵌套函數(shù)
- 函數(shù)可以引用外部的變量和參數(shù)
- 參數(shù)和變量不會被垃圾回收