Создание копии переданного объекта

Для поддерживаемых типов глубокую независимую копию создаёт structuredClone. Универсально скопировать любой объект с его функциями и поведением невозможно.

Короткий ответ

Что ответить на собеседовании

Для поддерживаемых типов глубокую независимую копию создаёт structuredClone. Универсально скопировать любой объект с его функциями и поведением невозможно.

Подробный разбор

Ответ с пояснениями

Условие

Разработать функцию, принимающую объект в качестве аргумента и возвращающую его новую копию. Функция должна создавать отдельный объект, содержащий те же свойства и значения, что и исходный, без взаимных ссылок между оригиналом и копией.

Ответ

Для поддерживаемых типов глубокую независимую копию создаёт structuredClone. Универсально скопировать любой объект с его функциями и поведением невозможно.

function cloneObject(value) {
  return structuredClone(value);
}

Метод поддерживает многие встроенные типы и циклы, но не произвольные функции, DOM-узлы или сохранение любого пользовательского прототипа. Циклические связи внутри копии могут остаться, однако они не ведут в исходный граф. Для ограниченного JSON-контракта возможны более простые варианты.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее