# Метод 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`,
  который возвращает массив из значений объекта

←→
↑
en ru