0

この種の質問がよく聞かれることは知っていますが、この種の宣言に関する質問は見たことがありません

(function(){
    myFuncName=function(myVar){
       // some logic
    };
}());

それはどう違うのですか

function myFuncName(myVar){
// some logic
}
4

3 に答える 3

1

最初のものは匿名関数であり、後で参照して呼び出す方法がないため、作成されたらすぐに実行するだけです ( )!

(function(){
    alert(1)
}())

2 つ目は、後でいつでも呼び出すことができる参照関数です。明示的に呼び出さない限り実行されません

于 2013-03-14T06:00:11.280 に答える
1

あなたがしていることは、クロージャーも含む無名関数を作成することです。閉鎖の詳細については、こちらをご覧ください

基本的に、クロージャーとは、別の関数内で関数を宣言したことを意味します。これにより、最初の関数が終了した後にローカル変数にアクセスできます。

通常、これらは範囲外であるため、これを行うことはできません。

他の部分については。ここで何が起こっているかについての非常に役立つガイドを見つけることができますなぜ同じ行で無名関数を呼び出す必要があるのですか? .

要約すると、匿名の自己呼び出し関数式を作成しました。
自己呼び出しは()、関数式の直後に続くという事実から来ています。

于 2013-03-14T05:49:05.740 に答える
0

これは、 javascriptでの関数宣言を説明するリンクです。

于 2013-03-14T05:48:39.890 に答える