我說(shuō)一下,我的理解吧,結(jié)合《JavaScript高級(jí)程序設(shè)計(jì)》和《JavaScript權(quán)威指南》對(duì)閉包的解釋,我更覺(jué)得權(quán)威指南解釋更為正確一些,閉包不應(yīng)該說(shuō)是指某個(gè)函數(shù)吧,波神你根據(jù)chrome的顯示,說(shuō)是外層函數(shù),而高級(jí)程序設(shè)計(jì)恰好相反,說(shuō)閉包是內(nèi)部函數(shù)。閉包更準(zhǔn)確的說(shuō)是一項(xiàng)技術(shù)或者一個(gè)特性,函數(shù)作用域中的變量在函數(shù)執(zhí)行完成之后就會(huì)被垃圾回收,一般情況下訪問(wèn)一個(gè)函數(shù)作用域中的變量,正常是無(wú)法訪問(wèn)的,只能通過(guò)特殊的技術(shù)或者特性來(lái)實(shí)現(xiàn),就是在函數(shù)作用域中創(chuàng)建內(nèi)部函數(shù)來(lái)實(shí)現(xiàn),這樣就不會(huì)使得函數(shù)執(zhí)行完成變量被回收,這種技術(shù)或者特性應(yīng)該被稱為“閉包”,像是《JavaScript權(quán)威指南》打的比方,像是把變量包裹了起來(lái),形象的稱為“閉包”。我覺(jué)得應(yīng)該是這樣,而不是指某個(gè)函數(shù)是閉包。發(fā)表一下個(gè)人觀點(diǎn),有可能有錯(cuò)誤,希望能拋磚引玉,引來(lái)大家更加深入的理解。
f1482cbfb158 評(píng)論自前端基礎(chǔ)進(jìn)階(五):閉包