摘要:閉包是函數(shù)內部的子函數(shù)能讀取局部變量二閉包的特點函數(shù)里面嵌套函數(shù)內部函數(shù)能訪問外部函數(shù)的變量定義的參數(shù)和變量不會回收三閉包的前提先明白什么是全局變量和局部變量中聲明變量格式關鍵字變量名標識符。建議在退出函數(shù)之前,將不使用的局部變量全部刪除。
一、閉包的概念
閉包是指一個函數(shù)能夠訪問其函數(shù)外部作用域中的變量。
JavaScript閉包是函數(shù)內部的子函數(shù)能讀取局部變量
函數(shù)里面嵌套函數(shù)
內部函數(shù)能訪問外部函數(shù)的變量
定義的參數(shù)和變量不會回收
三、JavaScript閉包的前提先明白什么是全局變量和局部變量
JavaScript中聲明變量格式:var(關鍵字)+變量名(標識符)。
全局變量:
不在函數(shù)function內部用var關鍵字聲明如:
var text; var text=10;
在函數(shù)function內部沒有使用var關鍵字聲明卻直接賦值如:
function show(){
text=10;
}
局部變量:在函數(shù)function內部使用var關鍵字聲明并賦值如:
function show(){
var text=10;
}
簡單舉1個小例子
創(chuàng)作一個列表鼠標點擊時使其一行背景色變?yōu)榧t色,點擊另一行時上次點擊的變?yōu)樵瓨印?br>首先創(chuàng)造列表
使用JavaScript閉包,先取出所有的li,然后用for循環(huán)找到一個個li并用function函數(shù)封裝并給其添加樣式,在函數(shù)內部for循環(huán)清除上一次點擊的背景色。
由上面可以看出閉包的兩個用途:一個是前面提到的可以讀取函數(shù)內部的變量,另一個就是讓這些變量的值始終保持在內存中。
五、JavaScript閉包的缺點及其使用建議閉包有一個嚴重的缺點:內存浪費問題。不僅僅因為它常駐內存,更主要的是,對閉包的使用不當會造成無效內存的產(chǎn)生。
建議:在退出函數(shù)之前,將不使用的局部變量全部刪除。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/96257.html
摘要:閉包在我理解是一種比較抽象的東西。所以我寫了一篇博文來方便自己理解閉包。那么現(xiàn)在我們可以解釋一下閉包的第一個定義在計算機科學中,閉包是引用了自由變量的函數(shù)。循環(huán)中創(chuàng)建閉包在我們使用的關鍵字之前,閉包的一個常見問題就出現(xiàn)在循環(huán)中創(chuàng)建閉包。 零. 前言 從我開始接觸前端時就聽說過閉包,但是一直不理解閉包究竟是什么。上網(wǎng)看了各種博客,大家對閉包的說法不一。閉包在我理解是一種比較抽象的東西。所...
摘要:譯者按在上一篇博客,我們通過實現(xiàn)一個計數(shù)器,了解了如何使用閉包,這篇博客將提供一些代碼示例,幫助大家理解閉包。然而,如果通過代碼示例去理解閉包,則簡單很多。不過,將閉包簡單地看做局部變量,理解起來會更加簡單。 - 譯者按: 在上一篇博客,我們通過實現(xiàn)一個計數(shù)器,了解了如何使用閉包(Closure),這篇博客將提供一些代碼示例,幫助大家理解閉包。 原文: JavaScript Clos...
摘要:如何在初學就理解閉包你需要接著讀下去。這樣定義閉包是函數(shù)和聲明該函數(shù)的詞法環(huán)境的組合。小結閉包在中隨處可見。閉包是中的精華部分,理解它需要具備一定的作用域執(zhí)行棧的知識。 這是本系列的第 4 篇文章。 作為 JS 初學者,第一次接觸閉包的概念是因為寫出了類似下面的代碼: for (var i = 0; i < helpText.length; i++) { var item = he...
摘要:但是閉包也不是什么復雜到不可理解的東西,簡而言之,閉包就是閉包就是函數(shù)的局部變量集合,只是這些局部變量在函數(shù)返回后會繼續(xù)存在??上У氖牵]有提供相關的成員和方法來訪問閉包中的局部變量。 (收藏自 技術狂) 前言:還是一篇入門文章。Javascript中有幾個非常重要的語言特性——對象、原型繼承、閉包。其中閉包 對于那些使用傳統(tǒng)靜態(tài)語言C/C++的程序員來說是一個新的語言特性。本文將...
摘要:當面試中讓我解釋一下閉包時我懵逼了。這個解釋開始可能有點晦澀,讓我們抽絲剝繭摘下閉包的真面目。此文不詳述作用域有專門的主題闡述,不過作用域是理解閉包原理的基礎。這才是閉包的真正便利之處。閉包使用不當就會很坑。 原文鏈接 為什么深度學習JavaScript? JavaScript如今是最流行的編程語言之一。它運行在瀏覽器、服務器、移動設備、桌面應用,也可能包括冰箱。無需我舉其他再多不相干...
閱讀 1641·2021-09-02 09:55
閱讀 1115·2019-08-30 13:19
閱讀 1403·2019-08-26 13:51
閱讀 1453·2019-08-26 13:49
閱讀 2383·2019-08-26 12:13
閱讀 463·2019-08-26 11:52
閱讀 1910·2019-08-26 10:58
閱讀 3090·2019-08-26 10:19