JS高级——做用域链

基本概念函数

一、只要是函数就能够创造做用域spa

二、函数中又能够再建立函数code

三、函数内部的做用域能够访问函数外部的做用域对象

四、若是有多个函数嵌套,那么就会构成一个链式访问结构,这就是做用域链blog

<script>
    //f1--->全局
    function f1() {
        //f2--->f1--->全局
        function f2() {
            //f3---->f2--->f1--->全局
            function f3() {
            }

            //f4--->f2--->f1---->全局
            function f4() {
            }
        }

        //f5--->f1---->全局
        function f5() {
        }
    }
</script>

变量的搜索原则ip

一、首先在所在的做用域中查找作用域

二、若是找到了 就直接使用io

三、若是没有找到 就去上级做用域中查找function

四、若是直到0级做用域链也就是全局做用域尚未找到,报错class

在new Function中,在没有指定参数的状况下,函数中的Function对象做用域指示的又是全局

<script>
    var x= 123;
    function f(){
        var x = 100;
        //g.[[scope]]  == window
        var g = new Function("","alert(x)");
        g();
    }
    f();//结果为:123
</script>
相关文章
相关标签/搜索