js匿名函數(shù)的調(diào)用示例(形式多種多樣)
匿名函數(shù)就是沒(méi)有實(shí)際名字的函數(shù)。
javaScript的匿名函數(shù)形式多樣,而且不搞清楚,容易看暈代碼。
以下是成功調(diào)用的匿名函數(shù):
(function () {
alert(3);
})
();
(function f1() {
alert(4);
})(); //不是匿名函數(shù)也能這樣調(diào)用??!
void function(){
alert('void water');
}();//據(jù)說(shuō)效率最高,Javascript中void是一個(gè)操作符,該操作符指定要計(jì)算一個(gè)表達(dá)式但是不返回值。
!function(){
alert('!water');
}(); //運(yùn)算符+匿名函數(shù)調(diào)用
(function(){
alert('water');
}());//小括號(hào)+匿名函數(shù),有點(diǎn)強(qiáng)制執(zhí)行的味道~
使用匿名函數(shù)也要注意經(jīng)常犯的錯(cuò)誤:
//錯(cuò)誤寫法1
(function f1() {
alert(5);
})f1(); //這不是匿名函數(shù)了!
//錯(cuò)誤寫法2
(function () {
alert(6);
}); //語(yǔ)法沒(méi)有錯(cuò)誤,沒(méi)有調(diào)用的匿名函數(shù),后面也沒(méi)有機(jī)會(huì)調(diào)用了,因?yàn)闆](méi)有名字,找不到調(diào)用入口。
//錯(cuò)誤寫法3
function () {
alert(1);
}();//沒(méi)有產(chǎn)生函數(shù)的引用就調(diào)用
另外要注意理解小括號(hào)的作用。
小括號(hào)能把我們的表達(dá)式組合分塊,并且每一塊,也就是每一對(duì)小括號(hào),都有一個(gè)返回值。這個(gè)返回值實(shí)際上也就是小括號(hào)中表達(dá)式的返回值。所以,當(dāng)我們用一對(duì)小括號(hào)把匿名函數(shù)括起來(lái)的時(shí)候,實(shí)際上小括號(hào)對(duì)返回的,就是一個(gè)匿名函數(shù)的Function對(duì)象。因此,小括號(hào)對(duì)加上匿名函數(shù)就如同有名字的函數(shù)般被我們?nèi)〉盟囊梦恢昧?。所以如果在這個(gè)引用變量后面再加上參數(shù)列表,就會(huì)實(shí)現(xiàn)普通函數(shù)的調(diào)用形式。
相關(guān)文章
layui內(nèi)置模塊layim發(fā)送圖片添加加載動(dòng)畫的方法
今天小編就為大家分享一篇layui內(nèi)置模塊layim發(fā)送圖片添加加載動(dòng)畫的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09onbeforeunload與onunload事件異同點(diǎn)總結(jié)
本文對(duì)onbeforeunload與onunload事件的異同點(diǎn)、觸發(fā)于、可以用在哪些元素以及解決刷新頁(yè)面時(shí)不調(diào)用onbeforeunload等等,感興趣的朋友可以參考下哈2013-06-06JavaScript實(shí)現(xiàn)帶音效的煙花特效
這篇文章主要為大家介紹了通過(guò)JavaScript實(shí)現(xiàn)的帶音效的煙花特效,文中的示例代碼簡(jiǎn)潔易懂,對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,感興趣的可以了解一下2021-12-12js實(shí)現(xiàn)權(quán)限樹(shù)的更新權(quán)限時(shí)的全選全消功能
上一篇發(fā)了添加權(quán)限時(shí)的權(quán)限樹(shù)JS源碼,下面把更新時(shí)的也發(fā)給大家借鑒一下,因?yàn)楦聲r(shí)候牽扯到判斷已有權(quán)限等,所以,還要麻煩一些。2009-02-02簡(jiǎn)述凍結(jié)JS對(duì)象方法技術(shù)
本文主要介紹了凍結(jié)JS對(duì)象方法技術(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07微信小程序?qū)崿F(xiàn)頁(yè)面監(jiān)聽(tīng)自定義組件的觸發(fā)事件
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)頁(yè)面監(jiān)聽(tīng)自定義組件的觸發(fā)事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11js修改input的type屬性及瀏覽器兼容問(wèn)題探討與解決
js修改input的type屬性有些限制,今天遇到個(gè)問(wèn)題一開(kāi)始的時(shí)候,input的類型是text,后來(lái)變成了password類型。直觀的思路是用js修改input的type類型。但ie下這么做不可行,所以只能換個(gè)思路感興趣的朋友可以了解下2013-01-01js判斷ie版本號(hào)的簡(jiǎn)單實(shí)現(xiàn)代碼
本篇文章主要是對(duì)js判斷ie版本號(hào)的簡(jiǎn)單實(shí)現(xiàn)代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03