TGViewer
Гайды по JavaScript | Программирование Гайды по JavaScript | Программирование @guides_js · 7.17K subscribers
Post #5738 2.21K
Shallow vs Deep Copy: как не сломать данные?
Когда мы копируем объекты в JS, важно понимать, «зацепят» ли изменения оригинала нашу копию.

⤴️ Shallow Copy (Поверхностная)
Копирует только верхний уровень. Если внутри есть вложенные объекты, то копия будет ссылаться на те же участки памяти, что и оригинал.
Как сделать:
[...arr], {...obj} или Object.assign().
Недостаток: Изменишь вложенный объект в копии — он изменится и в оригинале.

⤵️ Deep Copy (Глубокая)
Создает полную независимую копию всех уровней вложенности.
Как сделать:
structuredClone(obj) — современный стандарт (рекомендуется в 2026!).
JSON.parse(JSON.stringify(obj)) — старый костыль (не копирует методы и Date).
Библиотеки типа lodash (cloneDeep).

const user = { name: "Ivan", skills: ["JS"] };
const copy = { ...user }; // Поверхностная копия

copy.skills.push("React");

console.log(user.skills); // ["JS", "React"] — Ой! Оригинал тоже изменился.
  • ❤ 4
  • 🔥 4
  • 🥰 2
More from @guides_js
  1. Sep 11, 2026Этот репозиторий — самый популярный способ генерировать PDF прямо в браузере. Более 31 000…
  2. Sep 8, 2026🔥 Нашёл невероятный проект — по сути, мультиплатформенный веб-аналог World of Tanks или W…
  3. Aug 27, 2026JavaScript Load Image – библиотека для загрузки, масштабирования, кадрирования и поворота…
  4. Aug 21, 2026PubNub JavaScript SDK (V4) Установка: npm install pubnub или CDN. Конфигурация: const pubn…
  5. Aug 17, 2026Проверка доступности сайта: примеры кода на PHP и JavaScript Короткие готовые скрипты для…
  6. Jul 31, 2026💪 Прокачай свой JS на практике! Этот репозиторий — набор упражнений для курса The Odin Pr…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →