this
là một điều JavaScript. Nó đề cập đến "ngữ cảnh" một chức năng đang chạy. Đối với hầu hết các trình xử lý sự kiện, nó là phần tử DOM ("thô") đang lắng nghe một sự kiện. Trong các tình huống khác, nó sẽ có nghĩa là những thứ khác; Googling "this
trong JavaScript" có thể là khai sáng.
tôi nói nó là "thô" DOM yếu tố vì jQuery thường được dùng để bọc phần tử DOM đồng bằng trong một wrapper jQuery, vì vậy bạn có thể sử dụng phương pháp jQuery như attr
thay vì những cái thông thường (getAttribute
, setAttribute
, v.v.). Gói này được thực hiện với chức năng $
và đó là nơi bạn thấy $(this)
. Ví dụ:
this.getAttribute("href")
/* or */ someElement.getAttribute("href")
cũng giống như
$(this).attr("href")
/* or */ $(someElement).attr("href")
$this
hoặc this$
chỉ là một tên biến.Tuy nhiên, nó thường là thông thường để làm một bài tập như
var $this = $(this);
Lý do của việc này là để tránh tiếp tục viện dẫn $
chức năng, mà là hơi đắt vì nó tạo ra một jQuery wrapper đối tượng mới mỗi lần. Nếu bạn lưu trữ phần tử được bao bọc trong một biến, bạn sẽ tăng hiệu quả một chút.
Trong trường hợp hiếm hoi, this
có thể đã là trình bao bọc jQuery. Các trường hợp mà đi lên thường xuyên đối với tôi là khi viết jQuery plugin. Trong trường hợp đó, bạn có thể thực hiện những việc như trực tiếp this.attr("id")
, mà không cần gói nó trước, bởi vì nó đã được bao bọc. Trong các trường hợp thông thường (các trình xử lý sự kiện, $.each
, v.v.) trình bao bọc là cần thiết.
'this' là tham chiếu tự js và đặt $() chỉ kết thúc tốt đẹp với lớp jquery. Những gì đề cập đến $ this - nó chỉ là một tên biến (không được xác định trước) và thường được sử dụng trong jquery plugins chỉ để luôn luôn có một tham chiếu đến lớp cha mẹ cấp 1 từ lớp con –