Ich habe eine Typoskript-Klasse
%Vor%Ich habe dann eine Instanz dieser Klasse (das ist ein Beispiel):
%Vor%Ich speichere dann dieses Restaurantobjekt in einer Art Cache.
%Vor%dann später in meiner Bewerbung bekomme ich das Restaurant zurück
%Vor%Aber da Javascripts als Verweis auf Objekte übergeben werden, werden die Änderungen, die ich an restToEdit vornahm, auch im Restaurant gespeichert, das sich im Cache befindet.
Ich möchte grundsätzlich, dass das Restaurant im Cache eine ganz andere Instanz ist als der restToEdit.
Ich habe versucht mit jQuery.clone und zu erweitern, aber es scheint nicht zu funktionieren, und ich denke, das ist, weil es ein Typoskript-Objekt ist. Oder ist das egal?
Jede Antwort, wie man dieses Objekt klont, wäre zu begrüßen
Danke
.clone () klont nur DOM-Elemente. Um JavaScript-Objekte zu klonen, versuchen Sie jQuery.extend . So etwas Ähnliches
%Vor%Typescript wird in JavaScript übersetzt. Also, JavaScript Weg wird gut funktionieren.
Demo:
Verwenden von standardmäßigen ES6-Funktionen
%Vor%Achtung: Dies führt zu einem flachen Klon.
Diese ausgezeichnete Seite von MDN enthält jede Menge Details beim Klonen, einschließlich eines Polyfill für ES5
Ein "schneller" Weg zum Klonen ist die Verwendung von JSON
Dienstprogramme
Ein "richtiger" Weg zum Klonen ist die Implementierung einer Klonmethode oder eines Kopierkonstruktors ...
Ich weiß, ich weiß nicht genug JQuery
Wenn Sie TS 2.1 verwenden, können Sie mit dem Objektspreizungsoperator eine flache Kopie erstellen:
%Vor%Tags und Links javascript typescript clone