JS匿名函數(shù)和匿名自執(zhí)行函數(shù)概念與用法分析
本文實例講述了JS匿名函數(shù)和匿名自執(zhí)行函數(shù)概念與用法。分享給大家供大家參考,具體如下:
1. 匿名函數(shù)的常見場景
js中的匿名函數(shù)是一種很常見的函數(shù)類型,比較常見的場景:
<input type="button" value="點擊" id="btn">
<script type="text/javascript">
//匿名函數(shù)的第一種情形
var btn=document.querySelector("#btn");
btn.onclick=function(){
// alert("aaaaa");
}
//匿名函數(shù)的第二種情形
setInterval(function(){
// alert("bbbbb");
}, 1000);
//匿名函數(shù)的第三種情形
var fun=function(){
alert("ccccc");
}
// fun();
//匿名函數(shù)的第四種情形
var obj={
name:"dddd",
say:function(){
alert(this.name);
}
}
obj.say();
</script>
上面展示的就是常見的匿名函數(shù)的使用場景。(注意:querySelector是H5中新增的查找dom元素的方法)
2. 匿名自執(zhí)行函數(shù)
見名思義,匿名自執(zhí)行函數(shù)首先是一個匿名函數(shù),但是這個函數(shù)是可以自己自動執(zhí)行的,不需要借助其他的元素。
<input type="button" value="點擊" id="btn">
<script type="text/javascript">
//1,匿名函數(shù)的第一種實現(xiàn)方式
(function(data){
// alert(data);
})("eee");
//2.匿名自執(zhí)行函數(shù)的第二種實現(xiàn)方式
(function(){
// alert("fff");
}());
//3.匿名自執(zhí)行函數(shù)的第三種實現(xiàn)方式
!function(data){
// alert(data);
}("hhh");
//4.匿名自執(zhí)行函數(shù)的第四種實現(xiàn)方式
var fun=function(data){
alert(data);
}("iii");
從上面的代碼塊中我們可以總結(jié)出實現(xiàn)匿名自執(zhí)行函數(shù)的方法一般有四種。
3. 匿名自執(zhí)行函數(shù)的作用
①. 匿名自執(zhí)行函數(shù)最常見的作用是用于實現(xiàn)閉包的情況中。關(guān)于閉包的概念我會在后面的文章中詳細(xì)介紹。這里簡單說明一下閉包。閉包:閉包是js的一種特性,我們可以通過閉包實現(xiàn)函數(shù)內(nèi)外部的連接,并且可以使得函數(shù)的局部變量始終存在于內(nèi)存中。
②. 匿名自執(zhí)行函數(shù)還可以用于在js中模擬創(chuàng)建塊級作用域,即如果使用匿名自執(zhí)行函數(shù)將某些代碼包裹起來可以實現(xiàn)塊級作用域的效果,減少全局變量的數(shù)量,在匿名自執(zhí)行函數(shù)執(zhí)行結(jié)束后變量就會被內(nèi)存釋放掉,從而也會節(jié)省了內(nèi)存。
4. 匿名函數(shù)和匿名自執(zhí)行函數(shù)總結(jié)
匿名函數(shù)可以簡單理解為沒有名字的函數(shù),常見的場景一共就有4種。
匿名自執(zhí)行函數(shù)可以簡單理解為可以自己執(zhí)行的匿名函數(shù),實現(xiàn)匿名自執(zhí)行函數(shù)的方式一共有4種。
匿名自執(zhí)行函數(shù)的作用就是用于閉包和創(chuàng)建獨立的命名空間兩個方面。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T教程》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
重學(xué) JS:為啥 await 不能用在 forEach 中詳解
這篇文章主要介紹了重學(xué) JS:為啥 await 不能用在 forEach 中,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
JavaScript如何動態(tài)創(chuàng)建table表格
這篇文章主要介紹了JavaScript如何動態(tài)創(chuàng)建table表格,一些時候需要動態(tài)的創(chuàng)建和刪除表格,接下來的文章中將為大家介紹下javascript是如何做到的,感興趣的朋友不要錯過2015-11-11
JS數(shù)組合并push與concat區(qū)別分析
這篇文章主要介紹了JS數(shù)組合并push與concat區(qū)別,結(jié)合實例形式分析了JavaScript中針對數(shù)組合并操作使用push與concat的區(qū)別,需要的朋友可以參考下2015-12-12
理解?JavaScript?對象屬性訪問的復(fù)雜性(示例代碼)
在?JavaScript?編程中,開發(fā)者經(jīng)常需要對對象的屬性進(jìn)行訪問,然而,訪問方式的不同可能導(dǎo)致代碼行為的差異,尤其在動態(tài)屬性的處理中,本文介紹JavaScript對象屬性訪問的復(fù)雜性,感興趣的朋友跟隨小編一起看看吧2024-12-12
Js 獲取HTML DOM節(jié)點元素的方法小結(jié)
在Web應(yīng)用程序特別是Web2.0程序開發(fā)中,經(jīng)常要獲取頁面中某個元素,然后更新該元素的樣式、內(nèi)容等。2009-04-04

