ホームページ > 記事 > ウェブフロントエンド > JavaScriptの匿名関数の使い方とメリット・デメリットを詳しく解説(グラフィックチュートリアル)
それでは、JavaScriptの匿名関数の使い方、メリット、デメリットについて詳しく解説していきます。今からそれを皆さんと共有し、皆さんの参考にしてください。
匿名関数は、グローバル変数を汚染することなく、Javascript がページ上に書かれていることを効果的に保証できます。
これは、あまり馴染みのないページに Javascript を追加する場合に非常に効果的で美しいです。
1. 無名関数とは何ですか?
JavaScript で関数を定義するには、一般に 3 つの方法があります:
関数キーワード (関数) ステートメント:
function fnMethodName(x){alert(x);}
関数リテラル ( 関数リテラル):
var fnMethodName = function(x){alert(x);}
Function() コンストラクター:
var fnMethodName = new Function('x','alert(x) ;')
上記の 3 つのメソッドは同じメソッド関数 fnMethodName を定義しています。
最初のメソッドは最も一般的に使用されるメソッドで、後の 2 つは変数 fnMethodName に関数をコピーします。この関数には名前がありません。つまり、匿名関数です。
実際、かなりの数の言語に匿名関数があります。
2. 関数リテラルと Function() コンストラクターの違い
関数リテラルは匿名関数ですが、構文では任意の関数名を指定でき、再帰関数を記述するときに自分で呼び出すことができます。 function では、 Function() コンストラクターを使用しても機能しません。
var f = function fat(x) { if (x
Function() コンストラクターにより、実行時に Javascript コードを動的に作成できます。コンパイル。この点では、グローバル関数 eval() に似ています。
Function() コンストラクターは関数本体を解析し、実行されるたびに新しい関数オブジェクトを作成します。したがって、ループ内で Function() コンストラクターを呼び出したり、頻繁に実行される関数を呼び出したりする効率は非常に低くなります。対照的に、関数リテラルは、検出されるたびに再コンパイルされません。
Function() コンストラクターを使用して関数を作成する場合、それは常にトップレベル関数として実行されます。
var y = "global";
function constructionFunction() { var y = "local"; return new Function("return y") // ローカル変数を取得できません} alter(constructFunction()()); // 出力「グローバル」と関数キーワード定義には独自の特性があり、Function() コンストラクターよりも使用するのがはるかに難しいため、このテクノロジは通常はほとんど使用されません。
関数リテラル式と関数キーワード定義は非常に似ています。
OS の匿名関数の一部の Webkit エンジンでは、リテラルの匿名関数にバグがあるというニュースがありますが、前の違いを考慮してください。
3. 無名関数のコードパターン
エラーモード: 機能せず、ブラウザは構文エラーを報告します。 function(){alert(1); }();
関数リテラル: 最初に関数オブジェクトを宣言してから、それを実行します。
(function(){alert(1); } ) ( );
優先順位式:( function(){alert(2); } ( ) );
void演算子:
void function(){ warning(3); }() これら 3 つのメソッドは同等です。hedger wang は個人的な理由から 3 番目のメソッドを好みますが、実際のアプリケーションでは最初のメソッドを使用します。
4. 無名関数の応用
「JavaScript のモジュールパターン」の最初の文は「グローバル変数は悪魔だ」です。 var キーワードを使用すると、匿名関数は、グローバル変数を汚染することなく、Javascript がページに書き込まれることを効果的に保証できます。
これは、あまり馴染みのないページに Javascript を追加する場合に非常に効果的で美しいです。
実際、匿名関数は YUI とそれに対応するパラダイムで広く使用されており、他の Javascript ライブラリでも広く使用されています。
JavaScript は関数型プログラミングの基礎です。
詳細については、「関数型プログラミング手法による美しい JavaScript の記述」および「関数型 JavaScript プログラミング ガイド」を参照してください。
上記は私があなたのためにまとめたものです。
関連記事:
JavaScriptプロトタイプのプロトタイプ詳細説明(基礎講座)JavaScript Cookie詳細説明と簡単な応用例(グラフィックチュートリアル)
JavaScriptコメントコードのいくつかのメソッド(グラフィックチュートリアル)
以上がJavaScriptの匿名関数の使い方とメリット・デメリットを詳しく解説(グラフィックチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。