Вопрос №55300 от пользователя Александр Селиванов в уроке «Клонирование (копирование)», курс «JS: Объекты»
Почему в решении учителя при вызове функции каждый раз создается объект result? Разве так можно?
Александр, приветствую!
при вызове функции каждый раз создается объект result? Разве так можно?
Что вы подразумеваете по "каждый раз"? Задача функции, которую необходимо реализовать - получить на вход объект и сделать его копию. Даная операция выполняется ровно один раз для одного вызова функции.
Станислав Дзисяк, Я имел в виду, что при рекурсином вызове функции снова создается const result = { }. То есть локально можно создавать объекты с именем, уже существующим во внешней области видимости?
Я имел в виду, что при рекурсином вызове функции снова создается const result = { }
Каждый вложенный вызов создает новый объект.
То есть локально можно создавать объекты с именем, уже существующим во внешней области видимости?
В данном случае имена никак не пересекаются, потому как область видимости переменной определяется местом определения, а не вызовом функции. Но создавать константы/переменные имена которых уже существуют во внешней области видимости можно, правда при этом будет получена ошибка линтера. Вот например:
const num = 5;
const fn = () => {
const num = 10;
console.log(num);
};
fn();
// => 10
Порекомендую вам на эту тему повторить урок "Окружение" из курса Введение в программирование.
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







