JS直ちに関数生命維持(直ちに呼び出された関数式)[順に] JS(関数(){...})()関数を呼び出すことが直ちに実行されます

オリジナルリンク:https://www.cnblogs.com/ming-os9/p/8891300.html

JS(関数(){...})()内の機能がすぐに実行されます

 
1(関数(){...})()
3(関数(){...}())

これらはすぐに機能の2つの一般的な言葉遣いのjs実行されています。

 

 

基本的な概念:

関数宣言:関数FNAME(){...};ファンクションキーを使用して関数を宣言し、その関数名を指定します。

関数式:VARのFNAME =機能(){...};関数を宣言するために関数キーワードを使用してではなく、関数名に、そして最終的に変数に無名関数を与えられました。

匿名関数:関数(){};なく、関数名に、関数を宣言する機能キーワードを使用します。(匿名関数も関数式に属します。)

(多くの無名関数の役割..変数関数が作成され、イベントが与えられたイベントハンドラなどとなっていいます)

 

 

関数宣言との差異の関数式について:

1:関数宣言巻き上げ関数宣言(単語を置き換え関数宣言を強化することである)、関数式がこれを持っていない現在のjsのコードは、この行を呼び出すことができたときに、それが解決される必要があります。

2:プラスの背後にある関数式()はすぐにできない、それしかできfnameは()の呼び出し関数宣言、関数を呼び出します。

 

 

例:

コードをコピー
ます。FName 1(); 
正しい2 fNameを関数(){...} //、関数宣言を向上させるので、fnameが()関数宣言の前に書き込むことができます。
3 
。4 fNameを(); 
5 fNameをするvar =関数(){...} //エラー関数宣言は、発現を増強する機能を有していません。
6 
。7 fNameをするvar =関数(){...}(); //プラスの後ろに正しい関数式()関数は直ちに呼び出されます。
8 
。9 fNameを関数(){...}(); //エラー関数宣言はfNameをによって呼び出されなければなりません()。
関数宣言関数fNameを(){...} //この行は、2つの部分に分解された 2 括弧の中には発現がないため、式()、式エラーをグループ化

機能は、(){.. }(); //匿名関数を呼び出すようにすることができない、機能ので(){...}文として扱われ、ステートメントを直接することができない()コール。
コードをコピー

 

ちなみに、直ちに生命維持(すぐに呼び出される関数式)を呼び出します。

(関数(){...})()と(機能(){...}())には違いありません!

機能の伝統的な定義は次のとおりです。

1つの関数foo(){...} // これが定義され、宣言だけ実行されません、その存在のインタプリタを知らせ
2 
3 FOOを();この文で、//、インタプリタは、ステートメントがそれを実行します遭遇

なぜ、それが生命維持しますか?1:ロングったらしいの伝統的な方法。2:伝統的な方法は、グローバルな名前空間を汚染します

だから我々は、このような書き込み   関数foo(){...}( ;) 大丈夫書かれています。いいえ、なぜ、関数fooので、(){...}この文は、文字列string「関数foo(){...}書いたように、インタプリタの一部でしかありません 」と、 それはする必要があります分析機能は、それができ、実行するためにeval()などを使用することができます。だから、文の後ろに直接配置される()入れ十分でない、間違っている文法!

しかし、私たちは関数がその上に関数式になっ宣言する必要があり、非常に近い距離の成功です。この方法は、最も一般的な方法は、包ま1ペア()を使用することで、非常に大きいです。 (関数foo(){...} )(); 

これは同等です

1つのVARのFOO =関数(){...}。
2のfoo();

もちろん、式文になるため、他の多くの方法があります。

!1関数foo(){...}(); 
2 +関数foo(){...}(); 
3ボイド関数(){...}();

必要に応じてグローバルオブジェクトなので、例えば、渡すこと:

ボイド関数1(グローバル){ 
2はconsole.log( "APOS値である:" + global.aa); //グローバルオブジェクトAAの値を取得することができ
3}(この)
1つのVARのAA = 10。
2(関数(A){ 
3はconsole.log( "Hello World"の+ A); 
4})(AA)。
1(関数(){...})()
3(関数(){...}())

これらはすぐに機能の2つの一般的な言葉遣いのjs実行されています。

 

 

基本的な概念:

関数宣言:関数FNAME(){...};ファンクションキーを使用して関数を宣言し、その関数名を指定します。

関数式:VARのFNAME =機能(){...};関数を宣言するために関数キーワードを使用してではなく、関数名に、そして最終的に変数に無名関数を与えられました。

匿名関数:関数(){};なく、関数名に、関数を宣言する機能キーワードを使用します。(匿名関数も関数式に属します。)

(多くの無名関数の役割..変数関数が作成され、イベントが与えられたイベントハンドラなどとなっていいます)

 

 

関数宣言との差異の関数式について:

1:関数宣言巻き上げ関数宣言(単語を置き換え関数宣言を強化することである)、関数式がこれを持っていない現在のjsのコードは、この行を呼び出すことができたときに、それが解決される必要があります。

2:プラスの背後にある関数式()はすぐにできない、それしかできfnameは()の呼び出し関数宣言、関数を呼び出します。

 

 

例:

コードをコピー
ます。FName 1(); 
正しい2 fNameを関数(){...} //、関数宣言を向上させるので、fnameが()関数宣言の前に書き込むことができます。
3 
。4 fNameを(); 
5 fNameをするvar =関数(){...} //エラー関数宣言は、発現を増強する機能を有していません。
6 
。7 fNameをするvar =関数(){...}(); //プラスの後ろに正しい関数式()関数は直ちに呼び出されます。
8 
。9 fNameを関数(){...}(); //エラー関数宣言はfNameをによって呼び出されなければなりません()。
関数宣言関数fNameを(){...} //この行は、2つの部分に分解された 2 括弧の中には発現がないため、式()、式エラーをグループ化

機能は、(){.. }(); //匿名関数を呼び出すようにすることができない、機能ので(){...}文として扱われ、ステートメントを直接することができない()コール。
コードをコピー

 

ちなみに、直ちに生命維持(すぐに呼び出される関数式)を呼び出します。

(関数(){...})()と(機能(){...}())には違いありません!

機能の伝統的な定義は次のとおりです。

1つの関数foo(){...} // これが定義され、宣言だけ実行されません、その存在のインタプリタを知らせ
2 
3 FOOを();この文で、//、インタプリタは、ステートメントがそれを実行します遭遇

なぜ、それが生命維持しますか?1:ロングったらしいの伝統的な方法。2:伝統的な方法は、グローバルな名前空間を汚染します

だから我々は、このような書き込み   関数foo(){...}( ;) 大丈夫書かれています。いいえ、なぜ、関数fooので、(){...}この文は、文字列string「関数foo(){...}書いたように、インタプリタの一部でしかありません 」と、 それはする必要があります分析機能は、それができ、実行するためにeval()などを使用することができます。だから、文の後ろに直接配置される()入れ十分でない、間違っている文法!

しかし、私たちは関数がその上に関数式になっ宣言する必要があり、非常に近い距離の成功です。この方法は、最も一般的な方法は、包ま1ペア()を使用することで、非常に大きいです。 (関数foo(){...} )(); 

これは同等です

1つのVARのFOO =関数(){...}。
2のfoo();

もちろん、式文になるため、他の多くの方法があります。

!1関数foo(){...}(); 
2 +関数foo(){...}(); 
3ボイド関数(){...}();

必要に応じてグローバルオブジェクトなので、例えば、渡すこと:

ボイド関数1(グローバル){ 
2はconsole.log( "APOS値である:" + global.aa); //グローバルオブジェクトAAの値を取得することができ
3}(この)
1つのVARのAA = 10。
2(関数(A){ 
3はconsole.log( "Hello World"の+ A); 
4})(AA)。

おすすめ

転載: www.cnblogs.com/langren1992/p/11689595.html