9

JQueryで、次のコード構造が使用されていることに気付きました

(function(){var l=this,g,y=l.jQuery,p=l.$,...})()

これは関数を作成し、それを呼び出すようです。

関数のコンテンツをインライン化するのと比較して、このアプローチを採用することの利点は何ですか?

4

5 に答える 5

7

コードの他の部分との競合を防ぐためにクロージャーを作成します。これを参照してください:

$()メソッドを使用する他のライブラリがあり、jQueryでもそれを使用する機能を保持する必要がある場合に特に便利です。次に、次のようなクロージャを作成できます。

(function($) {
    // $() is available here
})(jQuery);
于 2010-02-10T07:45:49.997 に答える
4

変数のスコープを作成します。特に、他のライブラリが上書きする場合でも、$たとえばバインドするように定義します。jQuery匿名の名前空間と考えてください。

于 2010-02-10T07:44:42.360 に答える
1

自己呼び出し無名関数を使用すると、ローカルスコープを作成できます。これは非常に効率的で、自分自身を直接呼び出します。

あなたはそれについてここで読むことができます

于 2010-02-10T07:46:09.930 に答える
0

それは次のようなものです:

var foo = function(){var l=this,g,y=l.jQuery,p=l.$,...};
foo();

しかし、もっと単純で、グローバル変数は必要ありません。

于 2010-02-10T07:45:45.643 に答える
0

これにより、ローカル変数と操作をグローバル変数に変換する代わりに、関数内に含めることができます。

于 2010-02-10T07:46:00.023 に答える