2012-03-07 13 views
6

Hepimiz, DOM'a çağrıları önbelleğe almanın iyi olduğunu biliyoruz, bu yüzden daha fazla kez $ ('# someElement') çağırmak yerine, bunu bir var $ someElement öğesine kaydedin ve kullanın.

Ancak, örneğin bir olay dinleyicisinin içinde $ (this) kullanılırken aynı şey midir? $ (bu) önbelleğe alınmalı mı?

Teşekkür ederiz.

+2

Tamamen kullanım deseninin $ (this) 'için ne olduğuna bağlı olduğundan şüpheleniyorum. –

cevap

5

gibi $(this) veya $(selector) diyoruz Her zaman bir şeyler yapmak daha iyidir ... yani zaten oluşturduysanız bir kez, caching aynı nesneyi yeniden oluşturmak için bir işlevi çağırmaktan kurtulacaktır.

+0

Teşekkür ederim, Charlie. – Francisc

2

Aynı öğeye, olay işlevinde daha sonra başvurursanız, evet. Fonksiyonun dışında bunu yapmak hiç mantıklı değil çünkü this değeri değişmiş olacaktır. Eğer $(this) birden çok kez çağırırsanız

+0

Teşekkür ederim Diodeus. – Francisc

7

, bunun yeni bir jQuery nesnesi oluşturmak için bir işlev çağrısı var $this = $(this);

+0

Performans kazancı var mı yoksa sadece karakter kaydetmek için mi (kullanım başına 2)? – Tx3

+0

@ Tx3 Hayır, sadece karakterleri kaydetmek için değil, fonksiyon çağrılarını kaydediyor. Her zaman, $ (this) 'dediğinizde fonksiyon çağrısı yaptınız. – xdazz

+0

eminim, sadece "sarma" yaparken ne tür bir işlem yaptığını düşünüyordum. Her neyse, önerdiğin gibi kullandım, bu yüzden sadece bir meraktı. – Tx3