Джаваскрипта пост

Вы сделали копию объекта. Изменили вложенное свойство. И вдруг оригинал тоже изменился. Знакомо?

Вот в чём подвох: поверхностное копирование копирует только первый уровень. ✅ Примитивные значения (строки, числа, булевы значения) дублируются безопасно. ❌ Вложенные объекты и массивы копируются по ссылке — не по значению. И оригинал, и копия указывают на одни и те же вложенные данные в памяти. Измените одно — и другое молча отразит это изменение.

Как избежать этой проблемы: 1. Используйте современные API браузера structuredClone() нативно обрабатывает большинство реальных случаев и работает лучше, чем кастомные решения.

2. Подключите библиотеку для сложных случаев Для больших приложений с глубоко вложенным состоянием библиотеки вроде Immer или Lodash (cloneDeep) снимают когнитивную нагрузку с команды и стандартизируют подход.

3. Классический трюк — методы JSON Преобразует объект в строку и обратно.

Джаваскрипта пост | Сетка — социальная сеть от hh.ru