structuredClone()structuredClone() — это встроенный JavaScript-метод, который создаёт истинную глубокую копию значения, используя алгоритм структурированного клонирования — не нужны никакие сторонние библиотеки.
Object.assign() — создают только поверхностную копию; вложенные объекты всё ещё ссылаются на оригиналыJSON.parse(JSON.stringify()) — теряют типы данных вроде Date, Map, Set, undefined и ломаются на циклических ссылкахstructuredClone() — корректно обрабатывает всё перечисленное выше и нативно поддерживает циклические ссылкиconst original = { date: new Date(), map: new Map() };
const clone = structuredClone(original); // ✅ сохраняет типы
Map, Set, Date, RegExpArrayBuffer, TypedArrayFunction — бросит DataCloneErrorИспользуй structuredClone(), когда тебе нужна надёжная глубокая копия сложных структур данных без лишних забот о потере типов или циклических ссылках. Избегай его, если твои данные содержат функции или DOM-элементы — они не поддерживаются алгоритмом структурированного клонирования.
structuredClone() создаёт глубокую копию, а оператор spread создаёт поверхностную копию, что означает, что вложенные объекты в результате spread по-прежнему ссылаются на исходные объекты.
Новый — ещё не проверен сообществом
Вы