What is an Activation object in JavaScript ?

********************* from Professional JavaScript for Web Development

Execution Context And Scope

  The execution context of a variable or function defines what other data it has access to, as well as how it should behave. Each execution context has an associated variable object upon which all of its defined variables and functions exist. 

  Each function call has its own execution context. Whenever code execution flows into a function, the function's context is pushed onto a context stack. After the function has finished executing, the stack is poped, returning control to the previously executing context.

  When code is executed in a context, a scope chain of variable objects is created. The purpose of the scope chain is to provide ordered access to all variables and functions that an execute context has access to. 

 

********************* from StackExchange

 Execution context is an object which consists of :

  • variable object, which is activation object is case of functions
  • scope chain, which you can think of as a linked list of outer scopes
  • this value

Variable object is an abstract thing, which can be either one of those :

  • global object (in global context) ;
  • activation object (for functions) ;

Activation object is an object which holds :

  • formal args of the function
  • arguments object for this function.
  • any vars and (named) function inside this functioin

So, activation object is just a special case of variable object;

It is basically a container for all the local stuff you can access by name inside a function, except for this

 

posted @ 2015-05-13 10:59  林大勇  阅读(334)  评论(0编辑  收藏  举报