這篇文章將為大家詳細講解有關JavaScript中閉包怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)叢臺免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
閉包真的是學過一遍又一遍,Js博大精深,每次學習都感覺有新的收獲。相信在大家封裝前端插件時,閉包是必不可少的。閉包的真正好處我個人認為除了封裝還是封裝,能帶個我們私有方法,和調用上的靈活方便,也會使你的代碼對外的對象保持干凈整潔。
進入正題
維基百科這樣定義了JS閉包:在計算機科學中,閉包(英語:Closure),又稱詞法閉包(Lexical Closure)或函數(shù)閉包(function closures),是引用了自由變量的函數(shù)。這個被引用的自由變量將和這個函數(shù)一同存在,即使已經(jīng)離開了創(chuàng)造它的環(huán)境也不例外。所以,有另一種說法認為閉包是由函數(shù)和與其相關的引用環(huán)境組合而成的實體。閉包在運行時可以有多個實例,不同的引用環(huán)境和相同的函數(shù)組合可以產(chǎn)生不同的實例。
通俗的講,閉包不同于一般函數(shù),它允許一個函數(shù)在立即此法調用的作用域外,仍可訪問非本地變量。我還想說,閉包的語法讓你的代碼更加動感,下面的一段代碼可能會讓你有所感觸。
我將appObj附加到window下面,我通常喜歡定義一個全局的名為application的對象,代表著整個應用公用的頂級對象,你可以在其中向外暴露很多公共的操作方法,也可以在其中做一些私有的處理,以防外部調用導致某些問題。在所定義的“頂級”application對象下,你也可以將你所非要不可的全局變量定義在其中,這樣以防普通全局變量對應用造成的影響,又可以在你定義的閉包內(nèi),通過向外暴露的對象表達更明確的信息,我一直認為,隨隨便便定義一個JS全局變量實在是太可恥了。
閉包的寫法加上VS強大的智能提示,你會感覺到無比的暢快。下面我又附加了一個方法
(function () { var baseUrl = "www.cnblogs.com/tdws/"; application.getBaseUrl = function () { return baseUrl; } }()); console.log(application.getBaseUrl());//www.cnblogs.com/tdws/
關于“JavaScript中閉包怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。