JavaScript Object.assign ()

Die JavaScript Object.assign () -Methode kopiert alle aufzählbaren eigenen Eigenschaften bestimmter Objekte in ein einzelnes Objekt und gibt es zurück.

Die Syntax der assign()Methode lautet:

 Object.assign(target,… sources)

Die assign()Methode ist eine statische Methode und wird unter Verwendung des ObjectKlassennamens aufgerufen .

assign () Parameter

Die assign()Methode umfasst:

  • target - Das Zielobjekt - worauf die Eigenschaften der Quellen angewendet werden sollen, das zurückgegeben wird, nachdem es geändert wurde.
  • Quellen - Die Quellobjekte - Objekte, die die Eigenschaften enthalten, die Sie anwenden möchten.

Rückgabewert von assign ()

  • Gibt das Zielobjekt zurück.

Hinweis: Eigenschaften im Zielobjekt werden durch Eigenschaften in den Quellen überschrieben, wenn sie denselben Schlüssel haben.

Beispiel 1: Verwenden von Object.assign () zum Klonen und Zusammenführen von Objekten

 // cloning objects const obj = ( name: "Alan Turing", age: 120, ); let newObject = (); const copy = Object.assign(newObject, obj); // modifies the target object console.log(newObject); // returns the modified object console.log(copy); // merging objects const o1 = ( a: 1, b: 2, c: 3 ); const o2 = ( b: 12, c: 13 ); const o3 = ( c: 23 ); // Earlier source keys are overwritten by later sources const o4 = Object.assign((), o1, o2, o3); console.log(o4); // ( a: 1, b: 12, c: 23 )

Ausgabe

 (Name: 'Alan Turing', Alter: 120) (Name: 'Alan Turing', Alter: 120) (a: 1, b: 12, c: 23)

Beachten Sie hier, dass wenn der Quellwert eine Referenz auf ein Objekt ist, nur der Referenzwert kopiert wird.

Außerdem überschreiben die Eigenschaften späterer Quellen frühere.

Beispiel 2: Verwenden von Object.assign ()

 const obj = Object.create( ( a: 1 ), ( // a is on obj's prototype chain. b: ( value: 2, // b is a non-enumerable property. ), c: ( value: 3, enumerable: true, // c is an own enumerable property. ), ) ); let copy = Object.assign((), obj); console.log(copy); // ( c: 3 ) copy = Object.assign(copy, "abc", 100, null); console.log(copy); // ( '0': 'a', '1': 'b', '2': 'c', c: 3 )

Ausgabe

 (c: 3) ('0': 'a', '1': 'b', '2': 'c', c: 3)

Wie Sie sehen können, können Eigenschaften in der Prototypenkette und nicht aufzählbare Eigenschaften nicht kopiert werden.

Außerdem werden Grundelemente in Objekte eingeschlossen, null und undefiniert werden ignoriert.

Da nur Zeichenfolgen aufzählbare Eigenschaften haben, werden sie in das Zielobjekt kopiert.

Empfohlene Lektüre: Javascript Object defineProperties ()

Interessante Beiträge...