內(nèi)部函數(shù)訪問了外部函數(shù)的變量并返回出去,會形成閉包。
閉包的作用
- 1.實現(xiàn)公有變量;
- 2.可以做緩存;
- 3.可以實現(xiàn)繼承,設(shè)置私有化屬性;
- 4.模塊化開發(fā),防止全局變量污染。
閉包的缺點及解決
缺點:函數(shù)執(zhí)行完后, 函數(shù)內(nèi)的局部變量沒有釋放,占用內(nèi)存時間會變長,容易造成內(nèi)存泄露。
解決:能不用閉包就不用,及時釋放。比如:
f = null; // 讓內(nèi)部函數(shù)成為垃圾對象 -->回收閉包