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

Почему в JavaScript есть проблема с клонированием объекта

В JavaScript объекты передаются по ссылке, а не по значению. При простом присваивании (obj2 = obj1) создается новая ссылка на тот же объект, а не его копия. Это приводит к неожиданным мутациям при изменении "клонированного" объекта.

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

  1. JSON.parse(JSON.stringify(obj)) - простой способ, но теряет функции и символы
  2. Рекурсивное копирование
  3. structuredClone() (современный способ)

Пример:

js
const original = { a: 1, b: { c: 2 } };
const shallowCopy = { ...original }; // поверхностная копия
const deepCopy = JSON.parse(JSON.stringify(original)); // глубокая копия

shallowCopy.b.c = 3; // изменит и original
deepCopy.b.c = 4;    // не затронет original
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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