Em um determinado contexto de execução, o objeto Variável é o objeto de Ativação desse contexto de execução.
Na minha pesquisa on-line, sou capaz de encontrar a frase anterior reformulada de maneiras diferentes, mas ninguém é capaz de dizer o que é.
O que é um objeto de Ativação?
javascript
terminology
rsman
fonte
fonte
Respostas:
Deixe-me começar pelas raízes ...
O contexto de execução é um objeto que consiste em:
this
valorObjeto variável é uma coisa abstrata, que pode ser uma das seguintes:
window
,document
ouconsole
em um navegador) residemObjeto de ativação é um objeto que contém:
arguments
objeto para esta funçãoPortanto, o objeto de ativação é apenas um caso especial de objeto variável.
É basicamente um contêiner para todo o material local que você pode acessar pelo nome dentro de uma função, exceto
this
. Posso ser impreciso aqui, mas é o que penso que é.Mais explicações com algumas fotos legais:
fonte
Um objeto de Ativação é o objeto usado para armazenar as propriedades que descrevem o ambiente e o escopo de uma função de execução. É nesse objeto que argumentos de função, por exemplo, são armazenados. Por definição, ATIVAR algo é fazer com que algo aja ou FUNCIONE. Portanto, quando você ouvir 'Objeto de ativação', pense no objeto 'FUNCTION' ou, melhor ainda, no objeto raiz que é LOCAL para uma função (ou seja, o OBJETO LOCAL DA FUNÇÃO).
Com relação ao objeto Variable, um objeto Activation é mais ou menos uma instância concreta de um objeto Variable, que é ele próprio (referindo-se ao objeto Variable aqui) um tipo de objeto ABSTRACT. Como indicado aqui ...
Portanto, dentro do ambiente e escopo do contexto de execução global (ou seja, quando está fora de uma função), o objeto Global é o objeto Variável. No navegador, como o ambiente de execução global ou mais externo é o WINDOW do navegador, é o
window
objeto que acaba sendo usado como o objeto Variável. É por isso que variáveis declaradas com avar
palavra - chave fora das funções acabam nowindow
objeto.No escopo de uma função, no entanto, é o objeto de Ativação (ou seja, o objeto local da função) que é o objeto variável, pois é esse objeto usado para armazenar as propriedades que descrevem o escopo de uma função em execução.
fonte