Код Junior Реализация с нуля обновлено

deepFreeze

Условие

Заморозь объект и все вложенные объекты. Верни его же.

Что проверяют тесты

  • верхний уровень

  • вложенный

  • циклическая ссылка не зацикливает

Как подойти

Object.freeze поверхностный - отсюда рекурсия. Порядок важен: сначала заморозить текущий объект, потом спускаться. Если наоборот, то на циклической ссылке (o.self = o) получишь бесконечную рекурсию, потому что охрана isFrozen ещё не сработает.

Подсказки: 2
  1. Замораживай текущий объект до спуска вглубь, а не после.
  2. Проверка isFrozen заодно спасает от циклов.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.