2

重複の可能性:
「$(this)」のコストはいくらですか?

パフォーマンスと読みやすさの両方の観点から、変数を使用する代わりに名前を付けるのは良い習慣$(this)ですか?

例は

$(".element").click(function() {

    var elem = $(this);

    //Examples
    elem.addClass("example");
    console.log( elem.attr("id") );

}):
4

2 に答える 2

0

はい、そうです。本質的には Dom-Search をトリガーする非常に高価な関数呼び出しであるため$(this)、呼び出すたびにそれを繰り返しますが、関数呼び出し$(this)var elem = $(this);1 回行い、結果を変数に格納します。

実際には、セレクターを関数に渡すときは、DOM 要素を渡すよりもはるかにコストがかかりますthis。そのため、キャッシングthisは非常に小さな効果しかありませんが、キャッシングのようなもの$("#foo[name|='bar']")は本当に重要です。

$ここに jQery オブジェクトがあることが明らかなように、変数名の前に を付けることをお勧めします。

$this = $(this);

$thisパフォーマンス上の利点がありながら、読みやすさの点で大きな欠点はありません。また、コンプレッサーによって単一文字の変数に縮小することはできますが、$(this)できません。

于 2012-07-19T08:36:13.503 に答える
0

個人的には、jQuery での検索がどれほど効率的に実装されていても、変更されない変数への参照をキャッシュすることを好みます。とにかく変数を参照する方が速いです。

于 2012-07-19T08:36:38.623 に答える