簡體   English   中英

javascript:傳遞函數名稱與IIFE

[英]javascript: passing a function name vs. IIFE

(希望我的術語正確...)

我的代碼,大大簡化了:

function foo(parm1, fn){
    // do stuff with parm1, and then...
    window[fn]();
}

function bar(){
    // do the other thing
}

然后調用為:

foo('some string', 'bar');

我想使用一個函數expression(?),像這樣:

foo('some string', function(){ // do the other thing });

同時保留傳遞函數名稱的選項(如第一個示例中所示),其中“ bar”所要做的是許多步驟。 我試過了

function foo(parm1, fn){
    // do stuff with parm1, and then...
    if(typeof fn != 'function'){
        window[fn]();
    } else {
        return true;
    }
}

foo('some string', function(){ // but this never fires });

我可以同時使用嗎?

您可以。 您忘記調用fn如果它是一個函數:

if(typeof fn != 'function'){
    window[fn]();
} else {
    fn(); // fn is (probably) a function so lets call it
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM