1.词法作用域:其作用域为在定义时(词法分析时)就确定下来的,而并非在执行时确定。
2.JavaScript中的函数是采用词法作用域的。
3.当定义一个函数时,该函数同时保存一个作用域链,该作用域链(函数对象所对应的作用域链)在函数调用时依然有效(谨记,函数也是一个对象,定义函数,就是定义了一个函数对象 function fun1(){} 就是使用function关键字,定义了一个名为fun1的函数对象)。
4.作用域链是一个对象列表。每次调用函数时,都会为之创建一个新的对象用来保存局部变量,并把这个对象添加到作用域链(函数对象所对应的作用域链)当中。当函数返回时,就从作用域链当中将这个对象删除。