2016-07-27 49 views
0

我想聲明一個函數,它是一個IIFE以及命名函數,以便它被調用。我認爲,我可以這樣做:Javascript:功能是IIFE以及功能定義供以後使用

var callme = (function callme(msg) { 
    console.log(msg); 
    return callme; 
})('i am called'); 

上述函數將輸出「我被稱爲」,因爲IIFE。後來我可以這樣稱呼它:

callme('i m called again'); 

對此方法的任何評論?或者這可以通過其他方式實現?請給出意見。

+0

只是單獨聲明一個函數。然後調用它。你不需要IIFE。 – zerkms

+0

你想在這裏做什麼?這很大程度上依賴於此。 –

+2

看起來不必要的讓我困惑。我會堅持一個簡單的'函數callme(msg){} callme('我叫'')'。你想用標準定義不給你的IIFE來達到什麼目的? – Rhumborl

回答

0

林不知道爲什麼你會開始執行它 - 你描述的心不是什麼一個IIFE,它只是一個良好的老式功能

function callMe(msg){ 
    console.log(msg); 
} 

callme("Hello"); // logs "Hello" 

的IIFE的目的可能是封裝呼叫的一部分,返回一個函數指針

var callMe = (function(msgPrefix){ 
    return function(msgSuffix){ 
     console.log(msgPrefix + ' ' + msgSuffix); 
    } 
})("Hello"); 

callMe("World")// logs "Hello world"