Từ khóa this
đề cập đến đối tượng mà hàm thuộc về hoặc đối tượng window
nếu hàm không thuộc đối tượng.
Nó được sử dụng trong mã OOP, để tham khảo các lớp/đối tượng chức năng thuộc về Ví dụ:
function foo() {
this.value = 'Hello, world';
this.bar = function() {
alert(this.value);
}
}
var inst = new foo();
inst.bar();
này cảnh báo: Hello, world
Bạn có thể thao tác mà đối tượng this
đề cập đến bằng cách sử dụng các hàm apply()
hoặc call()
. (Một tính năng rất rất tiện dụng vào những thời điểm)
var bar1 = new function() {
this.value = '#1';
}
var bar2 = new function() {
this.value = '#2';
}
function foo() {
alert(this.value);
}
foo.call(bar1); // Output: #1
foo.apply(bar2, []); // Output: #2
Tại sao các phiếu bầu xuống? .. Chỉ cần tò mò. – Atli
Tôi cũng tò mò. có điều gì sai với lời giải thích của anh ta không? – goh
Câu trả lời của @Danben đặt trọng tâm vào việc sử dụng từ khóa mới, tạo ra một đối tượng mới (cách nguyên mẫu javascript). Nếu không có nó, không có đối tượng mới được tạo ra và chức năng là "interned" (nếu tôi có thể nói như vậy) với đối tượng nó thuộc về, hoặc đối tượng cửa sổ toàn cục nếu trong trình duyệt. –