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

Почему не всегда используется spread оператор для клонирования объекта

Spread оператор (...) поверхностно копирует объект, что может привести к неожиданным последствиям при работе с вложенными объектами. Если объект содержит другие объекты или массивы, они будут скопированы по ссылке, а не по значению.

Пример:

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

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

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

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

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

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

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