2016-07-27 1 views
0

IIFEと名前付き関数を呼び出すように宣言したい。私は次のようにしてこれを行うことができます:Javascript:IIFEだけでなく、後で使うための関数定義

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

上記の関数は、IIFEのため "i am called"と出力します。そして、後でこのように呼び出すことができます:

callme('i m called again'); 

このようなコメントはありますか?またはこれ以外の方法でこれを達成できますか?コメントしてください。

+0

関数を単独で宣言するだけです。その後、それを呼び出します。あなたはIIFEは必要ありません。 – zerkms

+0

ここで何をしたいですか?それはそれに多く依存しています。 –

+2

私を不必要に混乱させるように見えます。私は単純な 'function callme(msg){} callme( '私は'と呼ばれます)'に固執します。標準の定義では得られないIIFEで何を達成しようとしていますか? – Rhumborl

答えて

0

イムないあなたが最初にそれを実行している理由を確認してください - あなたはイマイチ説明何生命維持、そのちょうど良い昔ながらの機能

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

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

生命維持の目的は、コールの一部をカプセル化することができ、関数ポインタを返す

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

callMe("World")// logs "Hello world" 
関連する問題