JavaScriptに関数を作成する必要がある場合、2つの方法があります。機能宣言、関数表現、各執筆は次のとおりです。
//方法1:functional宣言foo(){} //方法2:関数式var foo = function(){};さらに、このスコープで宣言された変数は、他のフィールドの変数を混乱させないように、主に使用されています。
(function(){// var x = ...})();この自己実行機能式は、上記の2つの方法の2番目の方法として分類されます。これは、機能式と見なすこともできます。
方法1と方法IIは関数を作成し、それをfooという名前で作成しましたが、2つには違いがあります。 JavaScriptインタープリターに存在するメカニズム(巻き上げ)があります。これは、変数(関数)のステートメントが最前線に宣伝されることを意味します。
たとえば、次のコードセグメント:
Alert(foo); // function bar_fn(){}出力の結果は、関数foo(){}、undefined、functions foo(){}、およびfunction bar_fn(){}です。
Fooの声明はアラートの後に書かれていることがわかりますが、JavaScriptインタープリターがそれをフロントアラートに上げ、関数式式によって作成された関数バーがこの治療を楽しんでいないため、それでも正しく呼ばれます。
Barは改善されていますか?
したがって、JavaScriptエンジンの上記のコードの順序は次のようなものかもしれません。
注記:
厳密に言えば、JavaScriptに関数を作成する場合、「関数構造法」と呼ばれる別の方法があります。
var foo = function( 'alert( "hi!");');
このメソッドは、文字列をパラメーターとして使用して関数本文を形成します。ただし、この方法では、実行効率が割引され、パラメーターを渡すことができないようであるため、使用する方が少ないようです。