介紹一下閉包和閉包常用場景?


1. 作用域(受javascript鏈式作用域結構的影響,父級變量中無法訪問到子級變量的值,為了解決這個問題,才使用的閉包。)閉包就是能夠讀取其他函數內部變量的函數。(在JS中,只有函數內部的子函數才能讀取局部變量,因此可以把閉包簡單理解為”定義在一個函數內部的函數”。無論是在事件中,for循環中,還是在函數自調用中,只要return出來,便有閉包的應用)。
2.閉包會把函數中變量的值保存下來,供其他函數使用,這些變量會一直保存在內存當中,這樣占用大量的內存,使用不當很可能造成內存泄漏,故要及時清除,清楚方法有兩種,一是標記清除,二便是引用計數清除。
3.閉包的常用場景有一是函數作為返回值,二是函數作為參數來傳遞。不適用於返回閉包的函數是個特別大的函數,很多高級應用都要依靠閉包實現.
4.使用閉包的好處是不會污染全局環境,方便進行模塊化開發,減少形參個數,延長了形參的生命周期,壞處就是不恰當使用會造成內存泄漏


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM