js如何查找上级作用域

来源:互联网 发布:sdn会取代那些传统网络 编辑:程序博客网 时间:2024/06/06 06:37

查找上级作用域就是看当前函数在哪个作用域下定义的,那么它的上级作用域就是谁,上级作用域和函数在哪里执行没有关系。

例子分析:

</script><script type="text/javascript">    var num=12;    function fn() {        var num=120;        return function () {            console.log(num);        }    }    var f=fn();    f();    //-------->输出120    ~function () {        var num = 1200;        f();   //-------->输出120    }();</script>
运行结果:
var f = fn()就是把函数fn的运行返回结果赋值给f,fn函数返回的是一个函数,该返回函数的上级作用域为函数fn
的私有作用域,所以运行f函数console.log(num),num不是f私有作用域的私有变量,需要在上级作用域找,fn的私有作用域含有变量
num,所以都输出的num为120。
分析图:

原创粉丝点击