匿名函數沒有實際名字,也沒有指針,怎麼執行滴?
其實大家可以看看小括號的意義就應該可以理解。小括號有返回值,也就是小括號內的函數或者表達式的返回值,所以說小括號內的function返回值等於小括號的返回值,不難理解 (function(){})()可以將沒有名字的函數執行了把…
關於匿名函數寫法,很發散~
最常見的用法:
復制代碼 代碼如下:
(function() {
alert('water');
})();
當然也可以帶參數:
復制代碼 代碼如下:
(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');
}());//有點強制執行的味道~
這麼多寫法賤賣啦~呵呵,其實有些人考慮到寫法的效率問題,如果可以,給我一個數據把,自我感覺這些寫法是有效率問題,但是應該是微乎其微而已(或許不對),我會隨便選一個用~