當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS_16闭包
閉包
-
什么是閉包
- 理解1:閉包是嵌套的內部函數
- 理解2:閉包是包含被引用變量(函數)的對象
-
閉包產生的條件
- 函數嵌套
- 子函數調用了父函數的數據
- 父函數被調用了(子函數不一定需要被調用,只需要執行函數定義即可)
-
常見的閉包
- 一個函數作為另一個函數的返回值執行
- 一個函數作為另一個函數的實參傳遞
-
閉包的生命周期
- 內嵌函數的函數定義執行時創建
- 賦值為null時銷毀
-
缺點
- 內存泄漏
- 產生原因:
- 意外的全局變量未銷毀
- 閉包未銷毀
- 定時器會回調函數未銷毀
- 防止辦法
- 及時處理
- 少用閉包
- 產生原因:
- 內存溢出
- 內存大量泄漏容易導致內存溢出
- 內存泄漏
總結
- 上一篇: java后期发展方向_Java程序员的4
- 下一篇: 08_JS工厂方法和构造函数