大規模な JavaScript アプリケーションで多数の jQuery セレクターをキャッシュして繰り返し再利用するために使用できるパターンは何ですか?
単純な関数内の単純な変数に jQuery セレクターを格納することについては多くのことが言われていますが、JavaScript オブジェクト内で、たとえば一般的なモジュール パターンでは、どうすればそれらをきれいにセットアップして格納できるでしょうか?
私の最初の試みはグローバル変数を使用することでしたが、それは名前空間を汚し、競合を引き起こす可能性がありました. 私の 2 番目の試みでは、対応するオブジェクト内のオブジェクト リテラル内にセレクターを格納する必要がありましたが、これにより、必要以上に長い呼び出しが発生します。次に例を示します。
var Module = {
nodes: {},
storeSelectorsInCache: function() {
Module.nodes = {
form: $('#form'),
grid: $('#grid')
};
},
initialize: function() {
Module.storeSelectorsInCache();
// notice the long hierarchy to get to Module.nodes.form
Module.nodes.form.submit(function() {
// event handler
});
}
};
よりクリーンな省略形がどこかにあるはずです。