javascript: Casting eines Objekts, das mit eval erstellt wurde

8

Ich habe eine Reihe von JavaScript-Klassen, die ich in meiner App verwende. In einem Fall möchte ich einen JSON von einer AJAX-Antwort auswerten, deren Form zu einer meiner Klassen passt.

Ich verwende die jquery parseJSON-Methode, um die Überprüfung für mich durchzuführen.

Das einzige Problem ist, dass ich jetzt eine in meiner Klasse definierte Methode aufrufen möchte, aber ich weiß, dass diese Methode auf dem evaluierten Objekt nicht existieren wird.

Was ist der beste Weg, diese Methode für mein neues Objekt verfügbar zu machen? Gibt es eine Möglichkeit, es zu "werfen"?

    
Chris Simpson 23.02.2011, 22:58
quelle

1 Antwort

6

Es gibt kein Konzept des Castings in JavaScript. Stattdessen können Sie den Konstruktor Ihrer Klasse so ändern, dass ein einfaches Objekt akzeptiert wird. Wie Sie das tun, hängt davon ab, wie Sie Ihre Klasse eingerichtet haben, könnte aber einfach eine flache Kopie des Objekts in eine neue Instanz der Klasse einbeziehen:

%Vor%

Dann "werfen" Sie Ihr Objekt so:

%Vor%

Wenn Sie mehrere Klassen haben, die dies erfordern, erstellen Sie möglicherweise eine extend -Funktion, die das Klonen für Sie übernimmt (oder wenn Sie jQuery verwenden, ist diese Funktion bereits vorhanden):

%Vor%

Und dann "Cast" wie folgt:

%Vor%     
David Tang 23.02.2011, 23:21
quelle

Tags und Links