Назад к задачам
Junior — Senior
12

Рекурсивное клонирование объекта со всеми вложенными свойствами и методами

Компании, где спрашивали:

A2Code
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо реализовать глубокую копию переданного объекта, учитывая все его вложенные структуры – примитивные значения, массивы и функции. При этом важно, чтобы методы сохраняли корректный контекст this (например, метод onClick использует текущий объект). Полученная копия должна полностью отделяться от оригинала: любые изменения в копии не должны отражаться на исходном объекте.

const obj = {
    name: 'Ivan',
    surname: 'Ivanov',
    hobbies: ['gym', 'video games', 'pubs'],
    onClick: this.handleClick,
};