XMLHttpRequest in einem Objekt: Wie behalte ich den Verweis auf "this"?

8

Ich mache einige Ajax-Aufrufe von innerhalb eines Javascript-Objekts.:

%Vor%

Innerhalb der Funktion onreadystatechange bezieht sich dies nicht mehr auf das Hauptobjekt, so dass ich keinen Zugriff auf this.foo habe. Kann ich den Verweis auf das Hauptobjekt in XMLHttpRequest-Ereignissen behalten?

    
Julien 11.05.2010, 05:41
quelle

2 Antworten

7

Der einfachste Ansatz besteht normalerweise darin, den Wert von this für eine lokale Variable zu speichern:

%Vor%

Ich vermute auch, dass Ihr myObject Bezeichner wirklich eine Konstruktorfunktion ist (Sie sind es) Zuweisen einer prototype -Eigenschaft).

Wenn das der Fall ist, vergessen Sie nicht, die richtige Eigenschaft constructor einzuschließen (da Sie die gesamte prototype ersetzen), die einfach eine Referenz an den Konstruktor ist.

Vielleicht nicht zu diesem Thema, aber zu lesen empfohlen:

CMS 11.05.2010, 05:46
quelle
4

Eine andere einfache Lösung besteht darin, Ihre onreadystatechange-Funktion daran zu binden. bind -ing die Funktion tut im Wesentlichen die gleiche Sache wie in der Antwort von CMS (das heißt, den Wert zum Abschluss hinzufügen), aber bind macht es auf eine transparente Art und Weise: Sie verwenden this anstatt einen% zu setzen co_de% Variable.

Hier ist eine instance Implementierung, wenn Ihre Codebasis keine enthält:

%Vor%

Und so können Sie es in Ihrem Code verwenden:

%Vor%     
Alsciende 11.05.2010 09:23
quelle

Tags und Links