DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> Javascript中匿名函數的調用與寫法實例詳解(多種)
Javascript中匿名函數的調用與寫法實例詳解(多種)
編輯:關於JavaScript     

Javascript中定義函數的方式有多種,函數直接量就是其中一種。如var fun = function(){},這裡function如果不賦值給fun那麼它就是一個匿名函數。好,看看匿名函數的如何被調用。

方式1,調用函數,得到返回值。強制運算符使函數調用執行

(function(x,y){
alert(x+y);
return x+y;
}(3,4)); 

方式2,調用函數,得到返回值。強制函數直接量執行再返回一個引用,引用再去調用執行

(function(x,y){
alert(x+y);
return x+y;
})(3,4); 

這種方式也是很多庫愛用的調用方式,如jQuery,Mootools。

方式3,使用void

void function(x) {
x = x-1;
alert(x);
}(9);

方式4,使用-/+運算符

-function(x,y){
alert(x+y);
return x+y;
}(3,4);
+function(x,y){
alert(x+y);
return x+y;
}(3,4);
--function(x,y){
alert(x+y);
return x+y;
}(3,4);
++function(x,y){
alert(x+y);
return x+y;
}(3,4); 

方式5,使用波浪符(~)

~function(x, y) {
alert(x+y);
return x+y;
}(3, 4); 

方式6,匿名函數執行放在中括號內

[function(){
console.log(this) // 浏覽器得控制台輸出window
}(this)] 

方式7,匿名函數前加typeof

typeof function(){
console.log(this) // 浏覽器得控制台輸出window
}(this) 

方式8,匿名函數前加delete

delete function(){
console.log(this) // 浏覽器得控制台輸出window
}(this) 

方式9,匿名函數前加void

void function(){
console.log(this) // 浏覽器得控制台輸出window
}(this) 

方式10,使用new方式,傳參

new function(win){
console.log(win) // window
}(this) 

方式11,使用new,不傳參

new function(){
console.log(this) // 這裡的this就不是window了
} 

方式12,逗號運算符

 function(){
console.log(this) // window
}(); 

方式13,按位異或運算符

^function(){
console.log(this) // window
}(); 

方式14,比較運算符

function(){
console.log(this) // window
}(); 

最後看看錯誤的調用方式

function(x,y){
alert(x+y);
return x+y;
}(3,4); 

匿名函數的N種寫法如下所示

匿名函數沒有實際名字,也沒有指針,怎麼執行?

關於匿名函數寫法,很發散~

+號是讓函數聲明轉換為函數表達式。匯總一下

最常見的用法:

代碼如下:

(function() { 
alert('water'); 
})(); 

當然也可以帶參數:

代碼如下:

(function(o) { 
alert(o); 
})('water'); 

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

代碼如下:

(function(o) { 
console.log(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'); 
}());//有點強制執行的味道~

以上給大家分享了Javascript中匿名函數的調用與寫法,希望對大家有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved