词法作用域 & 动态作用域
JavaScript 采用的是词法作用域,函数的作用域在函数定义的时候就决定了。
JavaScript
除了this(动态作用域)
之外,其他,都是根据词法作用域查找.
词法作用域的函数中遇到既不是形参也不是函数内部定义的局部变量的变量时,去函数定义时的环境中查询。
动态域的函数中遇到既不是形参也不是函数内部定义的局部变量的变量时,到函数调用时的环境中查。
附上两个分析的链接:
1、https://github.com/mqyqingfeng/Blog/issues/3
2、https://juejin.im/post/5abb99e9f265da2392366824