Rolf B: Javascript, Array, Objekte kopieren

Beitrag lesen

Hallo Gunnar Bittersmann,

const B = Object.create(A);

Du irrst. Das erzeugt ein neues Objekt in B mit A als Prototyp und keine unabhängige Kopie. Wenn, dann mit Object.assign:

const A = { foo: 2, bar: 3 };
const B = Object.create(A);
const C = Object.assign({}, A);

console.log(B.foo, C.foo);    // 2  2
A.foo = 22;
console.log(B.foo, C.foo);    // 22 2

Object.assign(x,y) nimmt die Eigenschaften aus y und kopiert sie nach x. x wird dann auch zurückgegeben. Deswegen das leere Objekt als erstes Argument.

Der Spread-Operator ist einfacher und gut unterstützt, darum habe ich Object.assign nicht erwähnt.

Rolf

--
sumpsi - posui - obstruxi