Являются ли контекст выполнения и объект-переменная фактически одинаковыми в JavaScript?

Название говорит обо всем.

Я так озадачен всей концепцией контекста исполнения в JavaScript. Я понимаю, что каждый контекст выполнения связан с одним переменным объектом, а переменный объект хранит объявленные переменные, функции и формальные параметры.

Слово "контекст исполнения" является настолько абстрактным термином, который я могу понять. Если переменный объект хранит все, то для чего нужно это слово "контекст выполнения"? Это просто два слова для одного и того же?

1 ответ

Решение

Нет, это разные вещи.

Все подробности находятся в спецификации в §10.4.3 и разделах, на которые он ссылается (в частности, §10.5), но в основном контекст выполнения имеет объект привязки переменной, но у него есть и другие вещи, такие как ссылка на его содержащий контекст (что дает нам цепочку области видимости) и значение this в контексте.

Другие вопросы по тегам