预编译发生在函数执行的前一刻,过程如下: 创建AO对象,执行期上下文(后面更新关于执行期上下文详解)。寻找函数的形参和变量声明,将变量和形参名作为AO对象的属性名,值设定为undefined.将形参和实参相统一,即更改形参后的undefined为具体的形参值。寻找函数中的函数声明,将函数名作为AO属性名,值为函数体。 至此,预编译环节结束,函数中咯变量按照最终AO对象中的值开始执行。实例文档