JavaScript中的閉包
1、什么是閉包
閉包,官方對(duì)閉包的解釋是:一個(gè)擁有許多變量和綁定了這些變量的環(huán)境的表達(dá)式(通常是一個(gè)函數(shù)),因而這些變量也是該表達(dá)式的一部分。
簡(jiǎn)單的說(shuō),Javascript允許使用內(nèi)部函數(shù)---即函數(shù)定義和函數(shù)表達(dá)式位于另一個(gè)函數(shù)的函數(shù)體內(nèi)。而且,這些內(nèi)部函數(shù)可以訪問(wèn)它們所在的外部函數(shù)中聲明的所有局部變量、參數(shù)和聲明的其他內(nèi)部函數(shù)。當(dāng)其中一個(gè)這樣的內(nèi)部函數(shù)在包含它們的外部函數(shù)之外被調(diào)用時(shí),就會(huì)形成閉包。
閉包的特點(diǎn)
1 函數(shù)嵌套函數(shù)
2 函數(shù)內(nèi)部可以引用外部的參數(shù)和變量
3 參數(shù)和變量不會(huì)被垃圾回收機(jī)制回收
一般函數(shù)執(zhí)行完畢后,局部活動(dòng)對(duì)象就被銷毀,內(nèi)存中僅僅保存全局作用域。但閉包的情況不同!
function fn(){
var a = ;
function fn(){
//可以訪問(wèn)fn中定義的a值
alert( a++ );
}
fn();
}
fn(); //
fn(); //
function fn(){
var a = ;
function fn(){
//可以訪問(wèn)fn中定義的a值
alert( a++ );
}
return fn;//
}
var f = fn();
f(); // 執(zhí)行完后a還在內(nèi)存中
f(); //
f = null; //a被回收
以上所述是小編給大家介紹JavaScript中的閉包,希望對(duì)大家有所幫助!
相關(guān)文章
sass 中使用 /deep/ 修改 elementUI 組件樣式報(bào)錯(cuò)
這篇文章主要介紹了sass 中使用 /deep/ 修改 elementUI 組件樣式報(bào)錯(cuò)的解決方案,嘗試用 ::v-deep 替換 /deep/ ,成功解決了問(wèn)題,感興趣的朋友跟隨小編一起看看吧2024-02-02
JavaScript 浮動(dòng)定位提示效果實(shí)現(xiàn)代碼
本來(lái)想做一個(gè)集合浮動(dòng)定位和鼠標(biāo)跟隨的tooltips效果,但發(fā)現(xiàn)定位和鼠標(biāo)跟隨在一些關(guān)鍵的地方還是不同的,還是分開(kāi)來(lái)吧。2009-09-09
如何在uni-app使用微軟的文字轉(zhuǎn)語(yǔ)音服務(wù)
有了語(yǔ)音識(shí)別,交流就會(huì)變得很簡(jiǎn)單,下面這篇文章主要給大家介紹了關(guān)于如何在uni-app使用微軟的文字轉(zhuǎn)語(yǔ)音服務(wù)的相關(guān)資料,需要的朋友可以參考下2022-06-06
給所有的超級(jí)練級(jí)都加上onmousemove時(shí)間的js代碼
給所有的超級(jí)練級(jí)都加上onmousemove時(shí)間的js代碼...2007-08-08
JavaScript實(shí)現(xiàn)的伸展收縮型菜單代碼
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的伸展收縮型菜單代碼,可實(shí)現(xiàn)JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)遍歷及修改頁(yè)面元素屬性的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
JavaScript架構(gòu)前端監(jiān)控搭建過(guò)程步驟
這篇文章主要為大家介紹了JavaScript架構(gòu)前端監(jiān)控搭建過(guò)程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
javascript 簡(jiǎn)單抽屜效果的實(shí)現(xiàn)代碼
javascript 簡(jiǎn)單抽屜效果的實(shí)現(xiàn)代碼,需要的朋友可以參考下,大家自行測(cè)試。2010-03-03
詳解JavaScript中js對(duì)象與JSON格式字符串的相互轉(zhuǎn)換
本篇文章主要介紹了JavaScript中js對(duì)象與JSON格式字符串的相互轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02

