TGViewer
HTML Academy HTML Academy @htmlacademy · 9.55K subscribers
Post #8643 1.01K
Присваиваете объект через = — и получаете вторую ссылку на тот же объект. Меняете «копию» — меняется оригинал. spread и Object.assign() спасают только частично: копируют первый уровень, а вложенные объекты и массивы остаются общими.

Долгое время глубокую копию собирали через JSON.parse(JSON.stringify(obj)). Способ рабочий, но теряет данные: Date превращается в строку, функции и undefined исчезают, Map становится пустым объектом.

structuredClone() делает полную независимую копию и корректно обрабатывает Date, Map, Set, ArrayBuffer, RegExp и другие встроенные типы. Функции и узлы DOM клонировать не получится — будет DataCloneError. Доступен во всех актуальных браузерах и в Node.js с 17-й версии.

В статье — интерактивный пример: нажимаете кнопку и видите, как ведут себя =, spread и structuredClone() на одном объекте. #js #clone

🔴 Читать статью
  • 🔥 8
  • ❤‍🔥 5
More from @htmlacademy
  1. Sep 25, 2026Скругления в неожиданных местах Скругления хороши в углах блоков, а в других местах они пр…
  2. Sep 25, 2026👍 С 25 по 27 сентября условия покупки курса или профессии предлагаете вы. Мы назвали это…
  3. Sep 18, 2026CSS shape() — фича больших надежд CSS начал вырастать из коротких штанишек квадратного веб…
  4. Sep 17, 2026🔴 Вместе с OKTTA запускаем совместную программу обучения фронтенд-разработчиков Нужна ли…
  5. Sep 16, 2026Завтра спросим у работодателя, что джун должен уметь без нейросети Эфир с руководителем ст…
  6. Sep 15, 202617 сентября в 12:00 (MSK) — прямой эфир с руководителем студии OKTTA. Студия сама делает д…
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 →