2017-02-13 80 views
0

有沒有辦法將匿名函數作爲Javascript中的自定義回調函數傳遞? 我有這樣的代碼:在JavaScript中傳遞匿名函數作爲回調

function notifyme(msg){ 
    console.log(msg) 
} 

notifyme("msg", function(){ 
    //do some custom redirect logic  
}); 

我想上面的代碼,它的執行notifyme功能,但不具有重定向代碼走得更遠。 我知道我可以傳遞一個函數名稱作爲回調,但我沒有一個特定的功能,我可以通過。這就是爲什麼他們發明了我猜測的匿名函數。

如果有辦法做到這一點,那將會非常好。

+0

的可能的複製[JavaScript的風格:可選的回調(http://stackoverflow.com/questions/6792663/javascript-樣式可選回調) – evolutionxbox

+0

問題不在於可選回調,而是關於傳遞匿名函數回撥 – Lamar

回答

5

你的代碼模式應該是怎樣的

function notifyme(msg,callback){ 
 
    console.log(msg); 
 
    // Do your stuff here 
 
    if(callback){ 
 
     callback(); 
 
    } 
 
} 
 

 
notifyme("msg", function(){ 
 
    //do some custom redirect logic  
 
});

+0

好!從來沒有想過這會很容易...現在我甚至覺得自己很愚蠢,甚至有人問我:) – Lamar

+0

NP,它發生在某個時候,你不容易得到最簡單的東西,這就是爲什麼這個社區存在:D – ricky

+0

而且別忘了接受答案:P – ricky

2

您可以通過調用它()簡單的調用函數:

function notifyme(msg, myFunc){ 
 
     console.log(msg); 
 
     myFunc(); 
 
} 
 
    
 
notifyme("msg", function(){ 
 
     console.log("function called"); 
 
});

myFunc在上面的是你的函數變量指向。通過調用它,()您可以調用變量(myFunc)指向的函數。

此答案不會涉及自定義重定向邏輯的詳細信息。因爲我不知道這是什麼。

+0

感謝人已經知道了。 – Lamar

2

您需要致電您的回撥!

function notifyme(msg, callback){ 
    console.log(msg); 
    callback(); 
} 

notifyme("msg", function(){ 
//do some custom redirect logic  
}); 
+0

謝謝你的幫助。 – Lamar

相關問題