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