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