は、私は次のように包まれているいくつかのJavaScriptコードを継承していますか?jQueryの/ JavaScriptの包まれたコードクエリ
答えて
。
これにより、$
がその関数に対してローカルであることが保証されます。したがって、他の一部のライブラリがグローバルの$
識別子を使用している場合は競合しません。このようなことの
思う:
// create a function that receives jQuery as an argument
function keepItLocal($) {
// execute your jQuery code in here
// where $ is now a reference to jQuery
};
// invoke the function, passing in the global jQuery
keepItLocal(jQuery);
JavaScriptで唯一道範囲に変数が関数であるので、これはグローバルな名前空間の汚染を防止するための一般的なパターンです。私達はちょうどこのやった場合
:
$ = jQuery;
$('.someClass').someMethod();
を、それが以前に定義された、またはいくつかの他のコードが一緒に来て、それを上書きする可能性がある場合...我々は$
を上書きすることができます。
jQueryプラグインを記述するための標準パターンです:それは、その後$
パラメータによって参照される関数呼び出し、引数としてグローバルjQuery
に渡して、すぐに無名関数を呼び出すhttp://docs.jquery.com/Plugins/Authoring
これはjQueryのためのalaisingクロージャです。それは、匿名関数を作成することで動作します。その後、
function ($)
{
}
とパラメータjQuery
いるかもしれwindow.$
をデフォルトなしjQuery
の値を持つように$
を強制
ですぐに呼ばれるようにするためにそれを包みます別のライブラリによって上書きされています。
これは、プラグインがjQueryを拡張するために使用する一般的なショートカットです。この場合
jQuery(function($){
});
、関数はdocument.ready
イベントにexectuedするjQueryのファクトリメソッド(jQuery
または$
)に渡され:
はさらにdocument.ready
イベントは、同様のエイリアシングショートカットを有しています。パラメータはjQuery
になりますが、開発者はエイリアスの名前を好きなもの(通常は$
ショートカット)に変更できます。
私はクロージャ(あなたが投稿したコードはクロージャです)を使用すると、コード内の他の部分との変数の衝突を避けることができます。
Jamesが説明したように、プラグインはこの理由からこのように正確に記述されています。ところで
、通常は閉鎖がjqueryのでカスタマイズプラグインを書くためにどのような方法厥
(function ($) {
// do something cool here!
})(jQuery);
- 1. libgdxは包まれたテキスト
- 2. 枝:Javascriptの包含順序
- 3. Jquery Dragabale包含半径
- 4. 包まれたクリッカブルDivElement:イベントは
- 5. ifdefで包まれたQtシグナル
- 6. uncrustifyスペース//包まれたコマンドラインで
- 7. は、jQueryのまたはJavaScript
- 8. jqueryのまたはJavaScript
- 9. 簡単で包括的なAjaxウィジェットを設定したjavascriptライブラリ
- 10. Javascript Matlabのconvhullnに似た3次元凸包アルゴリズム
- 11. JavaScript/jQuery/AJAXのネストされたテンプレート
- 12. Javaのベース2コードクエリの戦略が必要
- 13. jQueryへのjavascriptまたはその逆
- 14. 取る方法モナドに包まれたリスト内の要素
- 15. asp.netコードの後ろにDBライトボックスで包まれたDBから
- 16. パーズクラウド "No such app"エラーの原因となるコードクエリ
- 17. カウントダウンカウンタJavascriptまたはJquery?
- 18. チェックボックスjqueryまたはjavascript oncheck?
- 19. javascriptまたはjquery keyboard event
- 20. jQueryドラッグ可能な包含表示ウィンドウ?
- 21. jQueryまたはJavascriptのないモバイルフレームワーク
- 22. javascriptまたはjqueryの単純なコード
- 23. JQueryまたはJavascriptフィルターの選択オプション
- 24. jQueryまたはJavaScriptのダブル遅延
- 25. jqueryまたはjavascriptで多色のクロスフェード
- 26. CSS、jQueryの、AJAX、またはJavaScript
- 27. jQuery/Javascriptのキャンセル(または上書き?)
- 28. JavascriptまたはJqueryの連続カウントダウンタイマー
- 29. 配列jQueryのまたはJavaScript
- 30. javascriptまたはjQueryの音楽プレーヤー
実行閉鎖が – kjy112
のように見えたら、これが重複していますしかし、それは検索するのが難しいです。私は自分自身をdupを見つけることができません。 – zzzzBov
http://stackoverflow.com/questions/5145092/what-is-this-design-pattern-known-as-in-javascript-jquery –