1. 程式人生 > >什麼是閉包(closure),為什麼要用它?在開發專案時什麼地方用閉包?以及優點和缺點

什麼是閉包(closure),為什麼要用它?在開發專案時什麼地方用閉包?以及優點和缺點

1. 閉包概念:即通過函式巢狀函式,內部函式引用區域性變數實現變數不釋放。廣泛來講,所有函式訪問另一個函式內部變數的過程都可以稱之為閉包

2. 優點:區域性變數不釋放

    缺點:記憶體洩漏、記憶體佔用

3. 閉包的實現基於以下三點:

    函式可以建立獨立作用域(因此閉包的實現依賴於函式);

    自由變數跨作用域取值,要去建立該函式的作用域中取值;

    變數被函式引用時不會被釋放;

4. 為什麼要用它?

    就是為了防止變數汙染,但是用多了會記憶體洩漏

5. 在開發專案時什麼地方用閉包?

     閉包就是父函式給子函式傳值,解決作用域問題。

    在es6出現之後一般使用let

     比如做一個隨機抽題功能、選項卡、幻燈片等。一般用setInterval的地方用的比較多。