1.什么是js閉包揍移?
那首先要先知道什么是閉包--當(dāng)內(nèi)部函數(shù) 在定義它的作用域的外部 被引用時,就創(chuàng)建了該內(nèi)部函數(shù)的閉包。如果內(nèi)部函數(shù)引用了位于外部函數(shù)的變量妙真,當(dāng)外部函數(shù)被調(diào)用完畢時蝠嘉,這些變量在內(nèi)存中不會被釋放最疆,因為閉包需要他們;
https://www.cnblogs.com/chuntaoj/p/5996216.html 寫的能看懂蚤告;
想在全局作用域去訪問一個函數(shù)內(nèi)的局部變量是訪問不到的努酸, 所以就通過函數(shù)內(nèi)返回內(nèi)部函數(shù),把內(nèi)部函數(shù)賦給了一個全局變量杜恰,這樣就可以在全局作用域訪問內(nèi)部變量了获诈;
2.js 閉包的作用仍源?
所以,閉包的作用--
1.在函數(shù)外部烙荷,訪問函數(shù)內(nèi)的局部變量
2.變量的值始終保持在內(nèi)存中镜会,因為內(nèi)部返回的閉包函數(shù)被賦給了 一個全局變量, 那么內(nèi)部函數(shù)還依賴于外部函數(shù)终抽,所以外部函數(shù)也不會被回收戳表,始終保存在內(nèi)存中;