Вопрос №55300 от пользователя Александр Селиванов в уроке «Клонирование (копирование)», курс «JS: Объекты»

Александр Селиванов

Почему в решении учителя при вызове функции каждый раз создается объект result? Разве так можно?

3 0

Станислав Дзисяк

Александр, приветствую!

при вызове функции каждый раз создается объект result? Разве так можно?

Что вы подразумеваете по "каждый раз"? Задача функции, которую необходимо реализовать - получить на вход объект и сделать его копию. Даная операция выполняется ровно один раз для одного вызова функции.

0

Александр Селиванов

Станислав Дзисяк, Я имел в виду, что при рекурсином вызове функции снова создается const result = { }. То есть локально можно создавать объекты с именем, уже существующим во внешней области видимости?

0

Станислав Дзисяк

Я имел в виду, что при рекурсином вызове функции снова создается const result = { }

Каждый вложенный вызов создает новый объект.

То есть локально можно создавать объекты с именем, уже существующим во внешней области видимости?

В данном случае имена никак не пересекаются, потому как область видимости переменной определяется местом определения, а не вызовом функции. Но создавать константы/переменные имена которых уже существуют во внешней области видимости можно, правда при этом будет получена ошибка линтера. Вот например:

const num = 5;

const fn = () => {
  const num = 10;
  console.log(num);
};

fn();
// => 10

Порекомендую вам на эту тему повторить урок "Окружение" из курса Введение в программирование.

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
25 мая 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
25 мая 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
25 мая 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
25 мая 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
25 мая 5 месяцев