Regarding the execution context of functions — there VO is inaccessible directly, and its role plays so-called an activation object (in abbreviated form — AO).
An activation object is created on entering the context of a function and initialized by propertyarguments
which value is the Arguments object:
Arguments object is a property of the activation object. It contains the following properties:
- callee — the reference to the current function;
- length — quantity of real passed arguments;
- properties-indexes (integer, converted to string) which values are the values of function’s arguments (from left to right in the list of arguments). Quantity of these properties-indexes ==arguments.length. Values of properties-indexes of the arguments object and present (really passed) formal parameters are shared.
Example:
Concerning the last case, in older versions of Google Chrome there was a bug — there parameterz
and arguments[2]
were also shared.