JQueryで、次のコード構造が使用されていることに気付きました
(function(){var l=this,g,y=l.jQuery,p=l.$,...})()
これは関数を作成し、それを呼び出すようです。
関数のコンテンツをインライン化するのと比較して、このアプローチを採用することの利点は何ですか?
JQueryで、次のコード構造が使用されていることに気付きました
(function(){var l=this,g,y=l.jQuery,p=l.$,...})()
これは関数を作成し、それを呼び出すようです。
関数のコンテンツをインライン化するのと比較して、このアプローチを採用することの利点は何ですか?
コードの他の部分との競合を防ぐためにクロージャーを作成します。これを参照してください:
$()
メソッドを使用する他のライブラリがあり、jQueryでもそれを使用する機能を保持する必要がある場合に特に便利です。次に、次のようなクロージャを作成できます。
(function($) {
// $() is available here
})(jQuery);
変数のスコープを作成します。特に、他のライブラリが上書きする場合でも、$
たとえばバインドするように定義します。jQuery
匿名の名前空間と考えてください。
自己呼び出し無名関数を使用すると、ローカルスコープを作成できます。これは非常に効率的で、自分自身を直接呼び出します。
あなたはそれについてここで読むことができます
それは次のようなものです:
var foo = function(){var l=this,g,y=l.jQuery,p=l.$,...};
foo();
しかし、もっと単純で、グローバル変数は必要ありません。
これにより、ローカル変数と操作をグローバル変数に変換する代わりに、関数内に含めることができます。