2012-03-07 31 views
6

Chúng ta đều biết rất tốt để lưu trữ các cuộc gọi đến DOM, vì vậy thay vì gọi $ ('# someElement') nhiều lần hơn, chỉ cần lưu nó vào var $ someElement và sử dụng nó.

Nhưng có giống nhau khi sử dụng $ (this) bên trong trình xử lý sự kiện chẳng hạn? Nên $ (này) được lưu trữ?

Cảm ơn bạn.

+2

Tôi nghi ngờ nó hoàn toàn phụ thuộc vào mô hình sử dụng là gì cho '$ (this)'. –

Trả lời

5

Mỗi lần bạn gọi $(this) hoặc $(selector) nó là một cuộc gọi chức năng để tạo ra một đối tượng jQuery mới ... vì vậy nếu bạn đã tạo nó một lần, bộ nhớ đệm sẽ tiết kiệm gọi một chức năng để tạo ra cùng một đối tượng một lần nữa

+0

Cảm ơn, Charlie. – Francisc

2

Nếu bạn tham khảo cùng một yếu tố sau trong hàm sự kiện, có. Ngoài chức năng, nó không có ý nghĩa gì vì giá trị của this sẽ thay đổi.

+0

Cảm ơn bạn, Diodeus. – Francisc

7

Nếu bạn gọi $(this) nhiều lần, nó là tốt hơn để làm điều gì đó như var $this = $(this);

+0

Có hiệu suất đạt được hay chỉ để lưu các ký tự (2 mỗi lần sử dụng)? – Tx3

+0

@ Tx3 Không, nó không chỉ là để lưu các ký tự, nó còn lưu các cuộc gọi chức năng. Bạn đã gọi hàm mỗi khi bạn thực hiện '$ (this)'. – xdazz

+0

chắc chắn, tôi chỉ đang suy nghĩ loại hoạt động nó đang làm gì khi nó "gói". Dù sao, tôi đã sử dụng nó như bạn đề nghị, vì vậy nó chỉ là sự tò mò. – Tx3

Các vấn đề liên quan