Wo ist mein 'das'? Verwenden der Methode objects als Rückruffunktion

Ich habe eine allgemeine Frage zur JavaScript-Spezifikation oder Implementierung von Funktionszeigern (Delegaten?), Die auf Objektmethoden verweisen.

Bitte lesen Sie den folgenden Codeausschnitt. Hier haben wir ein Objekt mit einer Methode, die 'this' verwendet, um auf ein Objektfeld zuzugreifen. Wenn wir diese Methode wie gewohnt aufrufen (o.method();), gibt den Wert des angegebenen Feldes des Objekts zurück. Wenn wir jedoch einen Zeiger auf diese Methode (Rückruf) erstellen und sie aufrufen, wird ein undefinierter Wert zurückgegeben, da 'diese' Methode im Gültigkeitsbereich jetzt ein globales Objekt ist.

var o = {
    field : 'value', 
    method : function() {
        return this.field;
    }
};

o.method(); // returns 'value'

var callback = o.method;

callback(); // returns 'undefined' cause 'this' is global object

Also, wo ist mein "das"?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage