Object.assign()

Object.assign(target, source1, source2, …)

Kopiert die eigenen aufzählbaren Eigenschaften der Quellobjekte in das Zielobjekt und gibt das Zielobjekt zurück. Spätere Quellen überschreiben frühere.

Die Methode ändert das Zielobjekt.

Parameter

  • target – das Objekt, in das kopiert wird.
  • source1, source2, … – die Objekte, aus denen kopiert wird.

Rückgabewert

Das Zielobjekt.

Beispiele

const defaults = { lang: 'de', perPage: 10, sort: 'date' };
const options = { perPage: 20 };
console.log(Object.assign({}, defaults, options));
console.log({ ...defaults, ...options });
console.log(defaults);

Ausgabe:

{ lang: 'de', perPage: 20, sort: 'date' }
{ lang: 'de', perPage: 20, sort: 'date' }
{ lang: 'de', perPage: 10, sort: 'date' }

Die Kopie ist flach – ein verschachteltes Objekt bleibt gemeinsam:

const original = { name: 'Kaffee', prices: { net: 14.9 } };
const copy = Object.assign({}, original);
copy.prices.net = 0;
console.log(original.prices.net);

Ausgabe:

0

Worauf Sie achten sollten

  • Sie kopiert nur eine Ebene. Eine vollständige (tiefe) Kopie erzeugt structuredClone().
  • Ist das Ziel ein bestehendes Objekt (Object.assign(defaults, options)), wird es geändert – für ein neues Objekt übergeben Sie {} als Ziel.
  • Zum Zusammenführen von Objekten wird heute häufiger die Spread-Syntax { ...a, ...b } verwendet.

Browserunterstützung

Baseline – weithin verfügbar: in allen gängigen Browsern seit September 2015, gilt als weithin verfügbar seit März 2018. Ab Version: Chrome 45, Firefox 34, Safari 9; Node.js 4.0.0. Stand: Oktober 2026 (MDN browser-compat-data).

Siehe auch:
Spread-Syntax (...)
structuredClone()
Object.freeze()