JS 作用域链

2018/8/25 posted in  JavaScript
  • 作用域链是一个数组

  • 作用域链是控制变量作用域的有序访问的js内部实现。

  • 作用域链存储在函数的执行上下文中,作用域链中存放的是执行环境中的vo或者ao。

  • 当前函数的作用域对象都是在最前端,而且全局的在最末端

  • 变量(标识符)的搜索都是从作用域链的最前端向后搜索,直到全局作用域 ,标识符的解析是沿着作用域链一级一级搜索的过程,从第一个对象开始,逐级向后回溯,直到找到同名标识符为止,找到后不再继续遍历,找不到就报错。

作用域链的代码分析

<script>
    var t = 0, m = 10;
    var res = fParent(t, m);
    console.log(res);

    function fParent(a, b) {
        var vParent = 'parent';

        function fChild(c) {
            var vChild = 'child';
            return c + vChild;
        }

        return a + b + vParent + fChild(a);
    }
</script>

作用域链的内部结构