JS在执行的时候是会预编译的,而预编译是会生成AO(函数作用域)和GO对象(全局作用域);
AO对象的生成方式:
1.生成AO对象;
2.找形参和变量声明提前,并且赋值为underfined;
3.实参和形参统一;
4.函数声明提前;(function a() {}这种才叫函数声明);
JS代码的执行过程中会生成scope对象,而scope对象是会指向一条作用域链,而这条作用域链的第一个节点就是全局的GO;
在函数执行的过程中就会AO对象;
当函数执行完毕之后就会销毁作用域链。
coderLsq 2021-03-16 20:48 原文
JS在执行的时候是会预编译的,而预编译是会生成AO(函数作用域)和GO对象(全局作用域);
AO对象的生成方式:
1.生成AO对象;
2.找形参和变量声明提前,并且赋值为underfined;
3.实参和形参统一;
4.函数声明提前;(function a() {}这种才叫函数声明);
JS代码的执行过程中会生成scope对象,而scope对象是会指向一条作用域链,而这条作用域链的第一个节点就是全局的GO;
在函数执行的过程中就会AO对象;
当函数执行完毕之后就会销毁作用域链。