SobesLab логотип SobesLab

Ответ

Контекст выполнения – это абстракция, описывающая среду, в которой выполняется текущий код. Каждый раз при вызове функции создаётся новый контекст выполнения. Он включает: 1) лексическое окружение (переменные, функции, аргументы, `this` и т.д.), 2) информацию о том, как функция была вызвана (например, значение this, идентификатор функции), 3) может содержать внешние данные (ссылка на внешнее окружение). Глобальный код выполняется в глобальном контексте выполнения. Контексты образуют стек вызовов. Когда функция заканчивает выполнение, её контекст снимается со стека. Управление контекстами – важная часть работы движка, скрытая от разработчика, но понимание, что у каждой функции свой \"внутренний мир\" (локальные переменные, this и пр.), – это и есть контекст выполнения.