jQuery / JavaScript "dieser" Zeiger Verwirrung

Das Verhalten von "diesem" wenn-Funktion bar genannt wird, ist unverständlich mir. Siehe code unten. Gibt es eine Möglichkeit, zu veranlassen, "das" werden, um eine einfache alte js-Objekt-Instanz, wenn bar genannt wird, von einem click-handler, statt dem html-element?

//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);
}

InformationsquelleAutor der Frage I. J. Kennedy | 2009-04-02

Schreibe einen Kommentar