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

Глобальный объект является функцией тоже?

Есть следующий код:

const q = 1;

function outer() {
	console.log('outer run')
	const w = 2;
  
  return function inner() {
  	console.log('inner run')
  	const e = 3;
    console.log(q);
  }
}

outer()()


Здесь 3 лексических окружения:
inner() -> outer() -> global

Порядок их создания такой:
1. При вызове inner() для неё создаётся лексическое окружение(ЛО), которое ссылается на более внешнее ЛО(то есть на ЛО outer)
2. При вызове outer() для неё создаётся ЛО, которое ссылается на глобальное ЛО

Проблема в том, что inner() и outer() это функции, а глобальное ЛО это не функция. Почему же глобальное ЛО тоже рассматривается движком js как функция? Это исключение или как это понимать?
  • Вопрос задан
  • 86 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
@shsv382
Вообще в JavaScript все это - объекты. Даже функции - это объекты.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы