Metoda Object.assign
Metoda Object.assign kopiuje właściwości i wartości obiektu źródłowego,
zwracając przy tym nowy obiekt. W pierwszym parametrze metody
ustawiamy obiekt docelowy, do którego kopiujemy,
a w drugim - wskazujemy obiekty, które należy skopiować.
Składnia
Object.assign(gdzie kopiować, obiekty);
Przykład
Otrzymajmy nowy obiekt ze źródłowego:
let obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);
Wynik wykonania kodu:
{a: 1, b: 2, c: 3}
Przykład
A teraz otrzymajmy nowy obiekt z kilku źródłowych, wymieniając je w parametrze przez przecinek:
let obj1 = {'a': 1, 'b': 2};
let obj2 = {'c': 3, 'd': 4};
let newObj = Object.assign({}, obj1, obj2);
console.log(newObj);
Po wykonaniu kodu zobaczymy, że dwa obiekty źródłowe połączyły się w jeden nowy obiekt:
{a: 1, b: 2, c: 3, d: 4}
Przykład
Również metodę Object.assign
można stosować do otrzymania nowej tablicy,
ponieważ tablica według swojego typu również należy do obiektów.
Stwórzmy nową tablicę, kopiując elementy z
źródłowej:
let arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);
console.log(newArr);
Wynik wykonania kodu:
[1, 2, 3, 4]
Przykład
Przy użyciu metody Object.assign
trzeba uważnie przestrzegać składni.
Na przykład, jeśli nie dodamy
w pierwszym parametrze obiektu docelowego, a pozostawimy
tylko obiekt do skopiowania, to on i zwróci się z powrotem:
let obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);
console.log(newObj === obj);
Wynik wykonania kodu:
true
Zobacz też
-
metoda
Object.keys,
która zwraca tablicę z właściwości obiektu -
metoda
Object.values,
która zwraca tablicę z wartości obiektu