美文网首页
2018-11-20

2018-11-20

作者: 鱼丸_e560 | 来源:发表于2018-11-25 21:55 被阅读0次

    作用域链的理解

    概念:

           1:每执行某个函数,即进入新的作用域。
           2:使用变量或给变量赋值,变量应从自身的作用域下找,如找不到,则往上层作用域找。
    

    例子:

    var a= 1
    function fn1() {
    function fn2() {
    console.log(a)
    }
    function fn3() {
    var a =4
    fn2()
    }
    var a =2
    return fn3
    }
    求 var fn = fn1()
    fn() 输出多少?
    fn1 函数中声明了2个函数(fn2和fn3),同时声明了变量a=2,并return fn3函数;
    fn=fn1,即fn=fn3,fn()即fn3();
    fn3函数调用fn2函数;
    fn2函数中没有变量a,便去fn1函数中寻找,var a = 2,所以fn()输出2。

    相关文章

      网友评论

          本文标题:2018-11-20

          本文链接:https://www.haomeiwen.com/subject/lfxxqqtx.html