(1) Execution context (which is the AO we talked about earlier) :
Before when the function, can create a known as the execution context of internal objects, an execution context defines a function execution environment, every time when executing the corresponding execution context function is unique, so multiple calls a function will lead to create more execution context, when the function is performed, The execution-time context he created is destroyed. Explanation: Every time we perform the function of system can create AO object, moments before the AO defines the variable functions such as ascension, for example defines a function test, when you call him he will create an AO, when you called again he will once again create another AO, AO is just a temporary storage object, When the function completes, the AO is destroyed.
(2) [scope]] :
Every JavaScript function is an object. Some properties of the object can be queried, but some properties cannot be queried. These properties are only accessible to the JavaScript engine. It stores a collection of run-time contexts.
(3) Scope chain
[[scope]] is a collection of execution context objects stored in [[scope]. This collection is linked in a chain called scope chain. In which function to look for variables, go to the top of the function’s scope chain and look down