TGViewer
Вёрстка сайтов | HTML, CSS, JS Вёрстка сайтов | HTML, CSS, JS @free_html_lessons · 4.52K subscribers
Post #2838 679
Метод structuredClone() глубокое копирование объектов

В JavaScript объекты копируются по ссылке. Если вы просто напишете const user2 = user1, то изменяя свойства в user2, вы автоматически измените их и в user1.

Для создания независимой копии (поверхностной) мы часто используем спред-оператор: const user2 = { ...user1 }. Но если внутри объекта есть вложенные объекты или массивы, спред не сработает – ссылки на внутренние структуры останутся прежними.

Как мы выкручивались раньше для глубокого копирования?
Настоящий костыльный хит: JSON.parse(JSON.stringify(obj)) – медленный, ломает даты, функции и RegExp.
Подтягивали тяжелые сторонние библиотеки вроде Lodash (_.cloneDeep()).

Современное решение:
Теперь в JavaScript есть нативный метод structuredClone(), который делает глубокое копирование одной строчкой кода без всяких библиотек

const original = {
name: "Тигран",
skills: ["HTML", "CSS", "Vue"],
meta: {
role: "Frontend Developer"
}
};

// Делаем глубокую копию
const copy = structuredClone(original);

// Проверяем: меняем вложенный массив в копии
copy.skills.push("TypeScript");

console.log(original.skills); // ["HTML", "CSS", "Vue"] -> оригинал НЕ изменился!
console.log(copy.skills); // ["HTML", "CSS", "Vue", "TypeScript"]


Что умеет structuredClone()?
В отличие от трюка с JSON, он корректно копирует цикличные ссылки (когда объект ссылается сам на себя).
Отлично справляется с встроенными типами данных: Date, Set, Map, RegExp, ArrayBuffer.
Единственное ограничение: Он не умеет копировать функции или DOM-узлы (вызовет ошибку). Но для чистых данных – это абсолютный мастхэв, работающий прямо из коробки во всех браузерах и Node.js.

#js
  • ❤ 2
  • 👍 1
More from @free_html_lessons
  1. Sep 27, 2026Post #3063
  2. Sep 27, 2026Подборка лучших постов за прошлую неделю Лучшие статьи @free_html_lessons: 1. Функции в Ty…
  3. Sep 26, 2026Post #3061
  4. Sep 26, 2026Задача: Шифр подстановки Современные методы шифрования надёжно защищают наши коммуникации…
  5. Sep 25, 2026Макет для тренировки (rectop) Перейти к макету 🧑‍💻 #макет@free_html_lessons
  6. Sep 24, 2026Timeline Tree Посмотреть на codepen 👨‍💻 #практика
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 →