Вебсправочник
Справочник JavaScript

Object.assign(): поверхностное объединение свойств

Object.assign копирует собственные перечисляемые свойства источников в целевой объект и возвращает этот объект.

Назначение

Object.assign копирует собственные перечисляемые свойства источников в целевой объект и возвращает этот объект.

Как это работает

Поздние источники перекрывают одноимённые свойства ранних. Вложенные объекты сохраняют ссылки. Чтобы не менять исходную цель настроек, часто передают новым первым аргументом пустой объект.

Пример

const base={size:10,nested:{enabled:true}};
const result=Object.assign({},base,{size:20});
console.assert(result.size===20);
console.assert(base.size===10);
console.assert(result.nested===base.nested);

Что должно получиться

Размер переопределён только в новом внешнем объекте, но nested остаётся общим. Это поверхностное копирование, а не изоляция всех уровней данных.

Граница применения и частая ошибка

Объединение не проверяет допустимость входных ключей и не является безопасной обработкой произвольной конфигурации. Разрешённые поля внешних данных нужно выбирать явно.

Самостоятельная проверка

Объедините базовые параметры с пользовательским размером, затем проверьте неизменность базового объекта. Добавьте вложенный объект и исследуйте общую ссылку.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.