使用閉包輸出0-5;
閉包的好處有:
1.緩存
2.面向?qū)ο笾械膶ο?/p>
3.實(shí)現(xiàn)封裝蒿叠,防止變量跑到外層作用域中芬探,發(fā)生命名沖突
4.匿名自執(zhí)行函數(shù)捏肢,匿名自執(zhí)行函數(shù)可以減小內(nèi)存消耗
閉包的壞處:
1.內(nèi)存消耗
通常來說奈籽,函數(shù)的活動對象會隨著執(zhí)行期上下文一起銷毀,但是鸵赫,由于閉包引用另外一個函數(shù)的活動對象衣屏,因此這個活動對象無法被銷毀,這意味著辩棒,閉包比一般的函數(shù)需要更多的內(nèi)存消耗狼忱。尤其在IE瀏覽器中需要關(guān)注。由于IE使用非原生javascript對象實(shí)現(xiàn)DOM對象一睁,因此閉包會導(dǎo)致內(nèi)存泄露問題
2.性能問題
使用閉包時钻弄,會涉及到跨作用域訪問,每次訪問都會導(dǎo)致性能損失者吁。因此在腳本中窘俺,最好小心使用閉包,它同時會涉及到內(nèi)存和速度問題复凳。不過我們可以通過把跨作用域變量存儲在局部變量中瘤泪,然后直接訪問局部變量,來減輕對執(zhí)行速度的影響染坯。