2016-01-22 101 views
0

我工作在JavaScript的功能,我不知道如果我能以後調用一個匿名函數:我可以調用一個匿名函數以後

code 
more code 

(function() { 
alert('Hello World!'); 
})(); 
more code 
(function() { 
alert('Goodbye World!'); 
})(); 

//call to the first anonymous function 
//call to the first anonymous function 

是否可以調用匿名函數? 我想有可能是一個包含所有功能的數組?

+1

你能否解釋一下__later__? – Rayon

+0

我會留在網上,直到我得到一個答案,所以如果你有一個關於我的問題的問題或建議,請問,如果你投票請解釋爲什麼,所以我可以從中學習! –

+0

當然,後來當代碼已經由匿名函數 –

回答

1

由於函數是「一等公民」,你可以將它們分配給變量,或者把它們放到數組/對象無論就像任何其他的變種,無論他們是匿名與否。

所以你必須要分配匿名函數變量(或把它變成一個數組),以便有某種方式來引用它以後。

而且,你不立即執行,而你在稍後的時間執行。

var anon1 = (function(){ 
    alert("anon1"); 
}); // <-- no() so it doesn't execute now. 

// code code 

anon1(); // <-- execute now 

// ----- or ------- 
var myFuncs = []; 

myFuncs.push((function(){ 
    alert("in myFuncs"); 
})); // <-- not executing it here. 

// code code 

myFuncs[0](); // <-- execute now 
+0

你不需要用圓括號包裝你的函數。 – Stevo

+0

只是試圖與問題提問者的原始問題保持一致。 – bob

+0

對不起,這是迂腐,但圓括號只對IIFE是必需的,所以當你沒有做IIFE時離開它們是錯誤的。如果我必須維護一個代碼庫,在這個代碼庫中,開發人員將所有函數表達式都包含在括號中,那麼我會做的第一件事是重構它以刪除它們。 – Stevo

相關問題