3

私は最近、jQuery chaning に関して次の質問をしました。

jQueryチェーンを読みやすくするためにフォーマットする好ましい方法はありますか?

多くの人が、ステートメント内の連鎖の量を減らし、代わりにオブジェクトを保持変数に格納したのではないかという提案で答えました。これは私には理にかなっています。

ただし、私の理解では、チェーン内のオブジェクトは既に (ある種の) スタックに保持されているため、結果を変数にキャッシュ/保存しても、より多くのメモリを使用して効果的に再保存されませんか?

投稿の 1 つに対するコメントは、パフォーマンス ヒット (存在する場合) があまりない可能性があることを示しているように見えたので、より読みやすくなる場合は、提案されているように喜んでキャッシュします。

また、キャッシングを使用している場合、これは and の有用性を制限し始めません.end().andSelf()?

4

2 に答える 2

8

通常、オブジェクトは参照 (メモリ内の場所へのポインター) として格納されます。両方とも同じオブジェクトを保持する 2 つの変数は、オブジェクトのすべてのデータを複製するわけではありません。実際のオブジェクト データが配置されているメモリ内の同じ場所へのポインターを保持するだけです。したがって、オブジェクトを変数に格納しても、パフォーマンスが大幅に低下することはありません。重要なことは何もありません。

于 2009-08-17T10:04:04.330 に答える
5

@Davの答えに加えて、jqueryオブジェクトを変数に格納することが良い場合があります。古典的な例:

$('#something div').each( function() {
    $(this).css({'background-color':'#afa'});
    // do some stuff;
    $(this).slideDown('fast');
}

より良い方法:

$('#something div').each( function() {
    var $this = $(this);
    $this.css({'background-color':'#afa'});
    // do some stuff;
    $this.slideDown('fast');
}

このようにして、を呼び出すたびに jquery オブジェクトを作成する$ことを回避できます。

于 2009-08-17T12:51:04.293 に答える