预编译发生在函数执行的前一刻,过程如下:

    1. 创建AO对象,执行期上下文(后面更新关于执行期上下文详解)。
    2. 寻找函数的形参和变量声明,将变量和形参名作为AO对象的属性名,值设定为undefined.
    3. 将形参和实参相统一,即更改形参后的undefined为具体的形参值。
    4. 寻找函数中的函数声明,将函数名作为AO属性名,值为函数体。

    至此,预编译环节结束,函数中咯变量按照最终AO对象中的值开始执行。
    实例文档