1. 程式人生 > >javascript 匿名函數

javascript 匿名函數

如果 不難 cti ora style erl bsp 效率問題 alert

匿名函數沒有實際名字,也沒有指針,怎麽執行滴?
其實大家可以看看小括號的意義就應該可以理解。小括號有返回值,也就是小括號內的函數或者表達式的返回值,所以說小括號內的function返回值等於小括號的返回值,不難理解 (function(){})()可以將沒有名字的函數執行了把…
關於匿名函數寫法,很發散~
最常見的用法:

復制代碼 代碼如下:
(function() {
alert(‘water‘);
})();

=====================================================================================================

如果看不懂匿名函數,看一下這個表達式

var square = function(x){return x*x;}//把函數賦值給了一個變量

表達式

var tensquare = (function(x){return x*x;})(10));/函數表達式定義後立即調用

javascript權威指南--函數

=====================================================================================================

當然也可以帶參數:

復制代碼 代碼如下:
(function(o) {
alert(o);
})(‘water‘);


想用匿名函數的鏈式調用?很簡單:

復制代碼 代碼如下:
(function(o) {
alert(o);
return arguments.callee;
})(‘water‘)(‘down‘);


常見的匿名函數都知道了,看看不常見的:

復制代碼 代碼如下:
~(function(){
alert(‘water‘);
})();//寫法有點酷~

復制代碼 代碼如下:
void function(){
alert(‘water‘);
}();//據說效率最高~

復制代碼 代碼如下:
+function(){
alert(‘water‘);
}();

復制代碼 代碼如下:
-function(){
alert(‘water‘);
}();

復制代碼 代碼如下:
~function(){
alert(‘water‘);
}();

復制代碼 代碼如下:
!function(){
alert(‘water‘);
}();

!-+~ 這些事一元運算符,優先級最高的,會把後面的函數調用作為一個整體,就類似與

!(function(){
alert(‘water‘);
}());

復制代碼 代碼如下:
(function(){
alert(‘water‘);
}());//有點強制執行的味道~


這麽多寫法賤賣啦~呵呵,其實有些人考慮到寫法的效率問題,如果可以,給我一個數據把,自我感覺這些寫法是有效率問題,但是應該是微乎其微而已(或許不對),我會隨便選一個用~

javascript 匿名函數