匿名函數(shù)就是沒有實(shí)際名字的函數(shù)。
javaScript的匿名函數(shù)形式多樣,而且不搞清楚,容易看暈代碼。
以下是成功調(diào)用的匿名函數(shù):
(function f1() {
alert(4);
})(); //不是匿名函數(shù)也能這樣調(diào)用!!
void function(){
alert('void water');
}();//據(jù)說效率最高,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í)行的味道~
//錯(cuò)誤寫法2
(function () {
alert(6);
}); //語法沒有錯(cuò)誤,沒有調(diào)用的匿名函數(shù),后面也沒有機(jī)會(huì)調(diào)用了,因?yàn)闆]有名字,找不到調(diào)用入口。
//錯(cuò)誤寫法3
function () {
alert(1);
}();//沒有產(chǎn)生函數(shù)的引用就調(diào)用
小括號(hào)能把我們的表達(dá)式組合分塊,并且每一塊,也就是每一對(duì)小括號(hào),都有一個(gè)返回值。這個(gè)返回值實(shí)際上也就是小括號(hào)中表達(dá)式的返回值。所以,當(dāng)我們用一對(duì)小括號(hào)把匿名函數(shù)括起來的時(shí)候,實(shí)際上小括號(hào)對(duì)返回的,就是一個(gè)匿名函數(shù)的Function對(duì)象。因此,小括號(hào)對(duì)加上匿名函數(shù)就如同有名字的函數(shù)般被我們?nèi)〉盟囊梦恢昧恕K匀绻谶@個(gè)引用變量后面再加上參數(shù)列表,就會(huì)實(shí)現(xiàn)普通函數(shù)的調(diào)用形式。
新聞熱點(diǎn)
疑難解答
圖片精選