其他分享
首页 > 其他分享> > 函数本身的作用域

函数本身的作用域

作者:互联网

js运行时,变量的查找规则,是先从当前作用域查找,如果无,一直向上层作用域查找。

所以对于了解js运行时变量所在的作用域非常关键。

这里要说的是函数自身的作用域。

函数本身是一个值,它和其他变量一样,有自己的作用域。函数自身的作用域就是声明时所在的作用域。

与函数运行时位置无关。

函数内部调用外部声明的函数

    <script>
        var a = 1;
        var x = function () {
            console.log(a); 
            // 查找变量a, a的当前作用域是函数本身的作用域,
            // 函数本身的作用域是函数声明时所在的作用域,
            // 声明时,作用域绑定在外面,a的值是1
        };
        function f() {
            var a = 2;
            x();
        }
        f() // 1
    </script>

外部调用函数内部声明的函数

    <script>
        function foo() {
            var a = 100;
            function bar() {
                console.log(a)
            }
            return bar;
        }
        var a = 200;
        var f = foo();
        f(); // 100 其实是个闭包
    </script>

 

标签:function,函数,作用域,本身,查找,var,声明
来源: https://www.cnblogs.com/lyraLee/p/11614518.html