首页 > 技术文章 > 函数作用域的理解

coderLsq 2021-03-16 20:48 原文

JS在执行的时候是会预编译的,而预编译是会生成AO(函数作用域)和GO对象(全局作用域);

AO对象的生成方式:

1.生成AO对象;

2.找形参和变量声明提前,并且赋值为underfined;

3.实参和形参统一;

4.函数声明提前;(function a() {}这种才叫函数声明);

JS代码的执行过程中会生成scope对象,而scope对象是会指向一条作用域链,而这条作用域链的第一个节点就是全局的GO;

在函数执行的过程中就会AO对象;

当函数执行完毕之后就会销毁作用域链。

推荐阅读