使用閉包輸出0-5;
閉包的好處有:
1.緩存
2.面向對象中的對象
3.實現封裝,防止變量跑到外層作用域中,發生命名沖突
4.匿名自執行函數,匿名自執行函數可以減小內存消耗
閉包的壞處:
1.內存消耗
通常來說,函數的活動對象會隨著執行期上下文一起銷毀,但是,由于閉包引用另外一個函數的活動對象,因此這個活動對象無法被銷毀,這意味著,閉包比一般的函數需要更多的內存消耗。尤其在IE瀏覽器中需要關注。由于IE使用非原生javascript對象實現DOM對象,因此閉包會導致內存泄露問題
2.性能問題
使用閉包時,會涉及到跨作用域訪問,每次訪問都會導致性能損失。因此在腳本中,最好小心使用閉包,它同時會涉及到內存和速度問題。不過我們可以通過把跨作用域變量存儲在局部變量中,然后直接訪問局部變量,來減輕對執行速度的影響。