Hành vi của "này" khi chức năng bar
được gọi là gây bối rối cho tôi. Xem mã bên dưới. Có cách nào để sắp xếp cho "này" là một trường hợp đối tượng js cũ đồng bằng khi thanh được gọi từ một trình xử lý nhấp chuột, thay vì là phần tử html?jQuery/JavaScript "này" con trỏ nhầm lẫn
// a class with a method
function foo() {
this.bar(); // when called here, "this" is the foo instance
var barf = this.bar;
barf(); // when called here, "this" is the global object
// when called from a click, "this" is the html element
$("#thing").after($("<div>click me</div>").click(barf));
}
foo.prototype.bar = function() {
alert(this);
}
Vui lòng giải thích '" đây là trường hợp foo'. Các jsfiddle sau (http://jsfiddle.net/yY6fp/1/) chứng minh rằng 'this' trong' this.bar() 'đánh giá đối tượng' window' (global). –