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

Какой есть нюанс при копировании объекта через Object.assign

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

Пример:

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

copy.b.c = 3; // Изменится и оригинал
console.log(original.b.c); // 3

Для глубокого копирования можно использовать:

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

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

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

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