Встречается на собеседованиях • сегодня

Какую ошибку можно получить при мутации вложенного объекта, скопированного через Object.assign

При мутации вложенного объекта, скопированного через Object.assign, можно столкнуться с проблемой поверхностного копирования (shallow copy). Object.assign копирует только свойства первого уровня, а вложенные объекты остаются ссылками на оригинал.

Пример:

javascript
const original = { a: 1, nested: { b: 2 } };
const copy = Object.assign({}, original);

copy.nested.b = 3; // Мутация вложенного объекта
console.log(original.nested.b); // 3 - оригинал тоже изменился

Для глубокого копирования лучше использовать:

  • JSON.parse(JSON.stringify(obj)) (но теряет функции и undefined)
  • Библиотеки типа Lodash (_.cloneDeep)
  • Нативный structuredClone() (современные браузеры)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы