Ich versuche, die Statistik von 'this' in meinem javscript-Objekt zu speichern, damit ich später in meiner Anwendung 'this' in einen vorherigen Zustand zurückversetzen kann. Ich dachte, ich könnte eine Schließung erreichen, aber bisher war ich nicht erfolgreich. Meine Idee war, so etwas wie dieseSpeicherstatus eines JavaScript-Objekts
function SavedFeature() {
var self = this;
this.savedItem;
this.storeState = function() {
this.savedItem = storeClosure();
}
function storeClosure() {
var closure = self;
return function() {
return closure;
};
};
//other things the user can change...
}
so später in meiner Anwendung zu tun, wenn ich an den Punkt zurückkehren benötigt, wenn ich storeState rief ich nur
//return the object I put in my closure
var backToNormal = savedFeature.savedItem();
tun könnte, das allerdings nicht funktioniert weil alle Änderungen an meinem savedFeature-Objekt nach dem Aufruf von storeState() in dem Element im im-Aufruf von savedItem() widergespiegelt werden. Ich vermute, dass dies geschieht, weil die Schließung auf eine Referenz von self gesetzt wird, anstatt auf eine neue Instanz kopiert zu werden.
Gibt es sowieso, um den Zustand meines gesamten Objekts in einer Schließung wie diesem zu speichern, oder muss ich dies auf andere Weise speichern.
Scheint wie tiefes Kopieren die einzige Möglichkeit ist, dies für ein ganzes Objekt zu erledigen. – ThrowsException