Задать вопрос
@Melagomania

Как функция получает доступ к себе при рекурсивном вызове?

Правильным ли будет утверждение, что при рекурсивном вызове функции в коде, движок js ищет объявление вызываемой функции во внешней области видимости? Ниже код с комментариями.

function func() {  //функция func объявлена в глобальном контексте
    func(); 
/*в текущей области видимости 'func' не объявлена, поэтому движок 
ищет объявление во внешней области видимости (в данном случае это
 глобальная область видимости), находит его там и теперь может выполнить функцию*/
}


Получение доступа к переменным и функциям происходит примерно так, как я описал выше (сразу ищем внутри текущей области видимости, потом по очереди идем искать во внешних). Подходит ли эта логика для рекурсивных вызовов, или они работают по своим "законам"?
  • Вопрос задан
  • 111 просмотров
Подписаться 1 Простой 1 комментарий
Ответ пользователя Stalker_RED К ответам на вопрос (3)
Stalker_RED
@Stalker_RED
В js, если что-то не объявлено, всегда происходит поиск во внешней области видимости.
Подробнее можно почитать здесь: https://learn.javascript.ru/closures
Ответ написан
Комментировать