Как клонировать объект в JavaScript?
Уровень: Middle
Ответ
Поверхностное копирование объекта можно сделать с помощью `Object.assign({}, original)` – это скопирует все собственные перечислимые свойства в новый пустой объект. Либо воспользоваться оператором расширения: `let clone = { ...original }` – он создаст новый объект и скопирует свойства original. Для глубокого копирования (вложенных объектов) можно использовать рекурсивный обход или методы вроде `structuredClone(obj)` (если поддерживается) или через сериализацию: `JSON.parse(JSON.stringify(obj))` – однако последний способ не копирует функции и специальные свойства и может потерять часть данных (например, undefined, Symbol). Поэтому для глубокого клонирования сложных объектов лучше использовать специализированные библиотеки или написать свою функцию.