Метод Object.assign

Метод Object.assign копирует свойства и значения исходного объекта, возвращая при этом новый объект. В первом параметре метода мы задаем целевой объект, в который копируем, а во втором - указываем объекты, которые нужно скопировать.

Синтаксис

Object.assign(куда копировать, объекты);

Пример

Давайте получим новый объект из исходного:

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

Результат выполнения кода:

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

Пример

А теперь получим новый объект из нескольких исходных, перечисляя их в параметре через запятую:

let obj1 = {'a': 1, 'b': 2}; let obj2 = {'c': 3, 'd': 4}; let newObj = Object.assign({}, obj1, obj2); console.log(newObj);

После выполнения кода мы увидим, что два исходных объекта слились в один новый объект:

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

Пример

Также метод Object.assign можно применять для получения нового массива, поскольку массив по своему типу также относится к объектам. Давайте сделаем новый массив, скопировав элементы из исходного:

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

Результат выполнения кода:

[1, 2, 3, 4]

Пример

При использовании метода Object.assign нужно внимательно придерживаться синтаксиса. К примеру, если не добавить в первый параметр целевой объект, а оставить только копируемый объект, то он и вернется обратно:

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

Результат выполнения кода:

true

Смотрите также

  • метод Object.keys,
    который возвращает массив из свойств объекта
  • метод Object.values,
    который возвращает массив из значений объекта
enru