Az Object.assign metódus

Az Object.assign metódus másolja a forrásobjektum tulajdonságait és értékeit, miközben egy új objektumot ad vissza. A metódus első paraméterében meghatározzuk a célobjektumot, amibe másolunk, a másodikban pedig megadjuk a másolandó objektumokat.

Szintaxis

javascriptObject.assign(hova másoljuk, objektumok);

Példa

Készítsünk új objektumot a forrásból:

javascriptlet obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);

A kód végrehajtásának eredménye:

javascript{a: 1, b: 2, c: 3}

Példa

Most készítsünk új objektumot több forrásból, felsorolva őket a paraméterben vesszővel elválasztva:

javascriptlet obj1 = {'a': 1, 'b': 2};
let obj2 = {'c': 3, 'd': 4};

let newObj = Object.assign({}, obj1, obj2);
console.log(newObj);

A kód végrehajtása után látni fogjuk, hogy a két forrásobjektum egy új objektumban egyesült:

javascript{a: 1, b: 2, c: 3, d: 4}

Példa

Az Object.assign metódust új tömb létrehozására is használhatjuk, mivel a tömb típus szerint szintén objektum. Készítsünk új tömböt, másolva az elemeket a forrásból:

javascriptlet arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);

console.log(newArr);

A kód végrehajtásának eredménye:

javascript[1, 2, 3, 4]

Példa

Az Object.assign metódus használatakor ügyelni kell a szintaxisra. Például, ha nem adunk meg első paraméterként egy célobjektumot, hanem csak a másolandó objektumot hagyjuk meg, akkor az fog visszatérni:

javascriptlet obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);

console.log(newObj === obj);

A kód végrehajtásának eredménye:

javascripttrue

Lásd még

  • a(z) Object.keys metódus,
    amely egy objektum tulajdonságaiból álló tömböt ad vissza
  • a(z) Object.values metódus,
    amely egy objektum értékeiből álló tömböt ad vissza