En un contexto de ejecución dado, el objeto Variable es el objeto de Activación de ese contexto de ejecución.
De mi investigación en línea, puedo encontrar la frase anterior reformulada de diferentes maneras, pero nadie puede decir cuál es.
¿Qué es un objeto de activación?
javascript
terminology
rsman
fuente
fuente
Respuestas:
Déjame comenzar desde las raíces ...
El contexto de ejecución es un objeto que consiste en:
this
valorEl objeto variable es una cosa abstracta, que puede ser uno de esos:
window
,document
oconsole
en un navegador) residenEl objeto de activación es un objeto que contiene:
arguments
objeto para esta funciónPor lo tanto, el objeto de activación es solo un caso especial de objeto variable.
Es básicamente un contenedor para todas las cosas locales a las que puede acceder por nombre dentro de una función, excepto
this
. Puedo ser impreciso aquí, pero eso es lo que creo que es.Más explicaciones con algunas buenas fotos:
fuente
Un objeto de activación es el objeto utilizado para contener las propiedades que describen el entorno y el alcance de una función de ejecución. Es en este objeto donde se almacenan los argumentos de la función, por ejemplo. Por definición, ACTIVAR algo es hacer que esa cosa actúe o FUNCIONE. Entonces, cuando escuche 'Objeto de activación', piense en el objeto 'FUNCIÓN', o mejor aún, en el objeto raíz que es LOCAL para una función (es decir, el OBJETO LOCAL DE FUNCIÓN).
Con respecto al objeto Variable, un objeto de Activación es más o menos una instancia concreta de un objeto Variable, que es en sí mismo (refiriéndose al objeto Variable aquí) un tipo de objeto ABSTRACT. Como se indica aquí ...
Por lo tanto, dentro del entorno y el alcance del contexto de ejecución global (es decir, cuando está fuera de una función), el objeto Global es el objeto Variable. En el navegador, dado que el entorno de ejecución global o más externo es la VENTANA del navegador, es el
window
objeto que termina siendo utilizado como objeto Variable. Es por eso que las variables declaradas con lavar
palabra clave fuera de las funciones terminan en elwindow
objeto.Sin embargo, en el alcance de una función, es el objeto de Activación (es decir, el objeto local de la función) el objeto variable porque es este objeto el que se usa para almacenar las propiedades que describen el alcance de una función en ejecución.
fuente