Когда нужно сделать полную копию сложного объекта (со всеми вложенностями), старый трюк с JSON часто ломает данные: он не умеет копировать даты (Date), регулярные выражения (RegExp), карты (Map/Set) и циклические ссылки.
В современном JS есть встроенный инструмент, который делает это правильно и быстро — structuredClone.
const user = {
name: "Alex",
joined: new Date(),
skills: new Set(["JS", "React"]),
};
// ❌ Старый костыльный метод (дата превратится в строку, Set просто исчезнет)
const badCopy = JSON.parse(JSON.stringify(user));
// ✅ Современный нативный метод (все типы данных сохраняются!)
const goodCopy = structuredClone(user);
console.log(goodCopy.joined instanceof Date); // true
console.log(goodCopy.skills); // Set(2) {"JS", "React"}