Читать книгу Angular - Ferdinand Malcher - Страница 89

Klasseninstanzen können nicht geklont werden

Оглавление

Bitte beachten Sie, dass diese Idee nur für Plain Objects funktioniert. Als Grundlage erzeugen wir immer ein leeres untypisiertes Objekt { }, in das wir die Eigenschaften eines anderen Objekts kopieren. »Klonen« wir also auf diese Weise ein Objekt, das eine Instanz einer Klasse ist, so werden nur die Eigenschaften kopiert, nicht aber die klasseneigenen Methoden. Die inhaltliche Verbindung mit der Klasse geht verloren, und es wird lediglich eine flache Kopie (engl. Shallow Copy) erzeugt.

Diese Eigenschaft ist vor allem interessant, wenn wir es mit komplexeren Objekten zu tun haben: Es wird stets nur die obere Ebene eines Objekts kopiert. Tiefere Zweige eines Objekts oder Arrays müssen wir zunächst mit der Spread-Syntax einzeln klonen und anschließend neu zusammenbauen. Wird diese Aufgabe zu kompliziert, sollten wir auf eine Bibliothek zurückgreifen, die eine Deep Copy erzeugt, sodass wir das Objekt gefahrlos verändern können.

Angular

Подняться наверх