jQuery での JavaScript カプセル化の構文の探索
jQuery 1.4 ソース コードを調べると、次のカプセル化構文に遭遇する可能性があります。
(function( window, undefined ) { //All the JQuery code here ... })(window);
この構文では次のような疑問が生じます。 「未定義」変数の目的と「ウィンドウ」の繰り返しの出現
「未定義」の意味
括弧内の「未定義」変数は次のとおりです。予約されたキーワードではありません。むしろ、これは新しい値を割り当てることができる通常の変数です。この場合、jQuery は、グローバル変数「未定義」が真に未定義のままであることを保証するために、「未定義」を「未定義」と等しく設定します。
「ウィンドウ」の重要性
「window」変数はグローバル JavaScript オブジェクトを参照します。 「window」を引数として無名関数に渡すことにより、jQuery はグローバル オブジェクトへのローカル参照を作成します。このローカル参照によりパフォーマンスが向上します。
JavaScript が変数を検索するとき、最初にローカル スコープをチェックします。変数がローカルで見つからない場合、検索は次のスコープに進み、グローバル スコープに到達するまで続けられます。グローバル オブジェクトへのローカル参照を作成することにより、JavaScript はすべてのスコープを検索することなく、「ウィンドウ」をすばやく見つけることができます。
この最適化は、Nicholas C. Zakas の記事「Speed Up Your JavaScript」で説明されています。 」により、jQuery ライブラリの実行速度が大幅に向上します。
以上がjQuery が `(function(window, unknown){...})(window);` を使用するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。