1. 什么是閉包
? ? ? ? MDN上說(shuō),閉包是函數(shù)和聲明該函數(shù)的詞法環(huán)境的組合赘被。通俗來(lái)講,閉包是一個(gè)能夠讀取到其他函數(shù)內(nèi)部變量的函數(shù)民假。
? ? ? ?一個(gè)簡(jiǎn)單的閉包例子:
輸出 sun
2阳欲、為什么要用閉包
????????由于javascript的變量作用域的問(wèn)題舵盈,函數(shù)內(nèi)部可以直接讀取全局變量球化,而在函數(shù)外部無(wú)法讀取函數(shù)里的局部變量。當(dāng)需要從函數(shù)外部讀取局部變量時(shí)赴蝇,就需要使用閉包。
3句伶、閉包用在哪里
????????保護(hù)變量和協(xié)調(diào)異步代碼陆淀。
4、閉包怎么用
? ? ? ? 閉包會(huì)將函數(shù)中的變量都保存在內(nèi)存中轧苫,內(nèi)存消耗很大,在退出函數(shù)之前應(yīng)將不使用的局部變量全部刪除含懊。閉包會(huì)在父函數(shù)外部,改變父函數(shù)內(nèi)部變量的值酥筝。所以閉包要謹(jǐn)慎使用雏门。