Das Verhalten von "dies", wenn Funktion bar
heißt, ist verwirrend mich. Siehe den folgenden Code. Gibt es eine Möglichkeit zu arrangieren, dass "dies" eine einfache alte js-Objektinstanz ist, wenn der Balken von einem Klick-Handler aufgerufen wird, anstatt das html-Element zu sein?jQuery/JavaScript "dieses" Zeiger Verwirrung
// 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);
}
Bitte erklären Sie die "Dies ist die foo-Instanz". Die folgende jsfiddle (http://jsfiddle.net/yY6fp/1/) zeigt, dass 'this' in' this.bar() 'zum' window' (globalen) Objekt ausgewertet wird. –