Введенный в ES2015 , этот метод копирует все перечислимые собственные свойства одного или нескольких объектов в другой.
Его основной вариант использования – создание неглубокой копии объекта.
const copied = Object.assign({}, original)Будучи неглубокой копией, значения клонируются, а ссылки на объекты копируются (не сами объекты), поэтому, если вы редактируете свойство объекта в исходном объекте, оно также изменяется в скопированном объекте, поскольку внутренний объект, на который ссылается ссылка, тот же:
const original = {
name: 'Fiesta',
car: {
color: 'blue'
}
}
const copied = Object.assign({}, original)
original.name = 'Focus'
original.car.color = 'yellow'
copied.name //Fiesta
copied.car.color //yellow
Я упомянул “один или несколько”.:
const wisePerson = {
isWise: true
}
const foolishPerson = {
isFoolish: true
}
const wiseAndFoolishPerson = Object.assign({}, wisePerson, foolishPerson)
console.log(wiseAndFoolishPerson) //{ isWise: true, isFoolish: true }
Оригинал: “https://flaviocopes.com/javascript-object-assign/”