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()