重複の可能性:
「$(this)」のコストはいくらですか?
パフォーマンスと読みやすさの両方の観点から、変数を使用する代わりに名前を付けるのは良い習慣$(this)
ですか?
例は
$(".element").click(function() {
var elem = $(this);
//Examples
elem.addClass("example");
console.log( elem.attr("id") );
}):
重複の可能性:
「$(this)」のコストはいくらですか?
パフォーマンスと読みやすさの両方の観点から、変数を使用する代わりに名前を付けるのは良い習慣$(this)
ですか?
例は
$(".element").click(function() {
var elem = $(this);
//Examples
elem.addClass("example");
console.log( elem.attr("id") );
}):
はい、そうです。本質的には Dom-Search をトリガーする非常に高価な関数呼び出しであるため$(this)
、呼び出すたびにそれを繰り返しますが、関数呼び出し$(this)
をvar elem = $(this);
1 回行い、結果を変数に格納します。
実際には、セレクターを関数に渡すときは、DOM 要素を渡すよりもはるかにコストがかかりますthis
。そのため、キャッシングthis
は非常に小さな効果しかありませんが、キャッシングのようなもの$("#foo[name|='bar']")
は本当に重要です。
$
ここに jQery オブジェクトがあることが明らかなように、変数名の前に を付けることをお勧めします。
$this = $(this);
$this
パフォーマンス上の利点がありながら、読みやすさの点で大きな欠点はありません。また、コンプレッサーによって単一文字の変数に縮小することはできますが、$(this)
できません。
個人的には、jQuery での検索がどれほど効率的に実装されていても、変更されない変数への参照をキャッシュすることを好みます。とにかく変数を参照する方が速いです。