В данном контексте выполнения объект Variable является объектом Activation этого контекста выполнения.
Из моего онлайн-исследования я могу найти предыдущее предложение, перефразированное по-разному, но никто не может сказать, что это такое.
Что такое объект активации?
javascript
terminology
rsman
источник
источник
Ответы:
Позвольте мне начать с корней ...
Контекст выполнения - это объект, который состоит из:
this
значениеПеременный объект - это абстрактная вещь, которая может быть любой из них:
window
,document
илиconsole
в браузере)Объект активации - это объект, который содержит:
arguments
объект для этой функцииИтак, объект активации - это просто особый случай объекта переменной.
По сути, это контейнер для всех локальных вещей, к которым вы можете обращаться по имени внутри функции, за исключением
this
. Я могу быть неточным здесь, но я думаю, что это так.Больше объяснений с некоторыми красивыми картинками:
источник
Объект активации - это объект, используемый для хранения свойств, которые описывают среду и область выполнения выполняемой функции. Именно на этом объекте хранятся аргументы функции, например. По определению, АКТИВИРОВАТЬ что-либо означает заставить эту вещь действовать или ФУНКЦИЮ. Поэтому, когда вы слышите «объект активации», думайте об объекте «FUNCTION» или, что еще лучше, о корневом объекте, который является ЛОКАЛЬНЫМ для функции (то есть, ЛОКАЛЬНЫЙ ОБЪЕКТ FUNCTION).
Что касается объекта Variable, объект Activation является более или менее конкретным экземпляром объекта Variable, который сам является (ссылаясь на объект Variable здесь) типом объекта ABSTRACT. Как указано здесь ...
Следовательно, в среде и области действия глобального контекста выполнения (т. Е. Вне функции) глобальный объект является объектом переменной. В браузере, поскольку глобальной или самой внешней исполняющей средой является WINDOW браузера, именно этот
window
объект в конечном итоге используется в качестве объекта Variable. Вот почему переменные, объявленные сvar
ключевым словом вне функций, попадают вwindow
объект.Однако в области действия функции именно объект Activation (т. Е. Локальный объект функции) является объектом переменной, поскольку именно этот объект используется для хранения свойств, описывающих область действия выполняемой функции.
источник