闭包题

作者: 阿鲁提尔 | 来源:发表于2017-08-31 23:44 被阅读0次
    • 函数在执行的过程中,先从自己内部找变量;
    • 如果找不到,再从创建当前函数所在的作用域去找,依此往上;
    • 注意找的是变量的当前的状态
    var a = 1
    function fn1(){
      function fn3(){
        function fn2(){
          console.log(a)
        }
        fn2()
        var a = 4
      }
      var a = 2
      return fn3
    }
    var fn = fn1()
    fn() //输出多少   //undefined
    
    var a = 1
    function fn1(){
      function fn3(a){
        function fn2(){
          console.log(a)
        }
        fn2()
        a = 4
      }
      var a = 2
      return fn3
    }
    var fn = fn1()
    fn(5) //输出多少  5
    
    var a = 1
    function fn1(){
      function fn3(){
        var a = arguments[0]  //相当于
        function fn2(){
          console.log(a)
        }
        fn2()
        a = 4
      }
      var a = 2
      return fn3
    }
    var fn = fn1()
    fn(5) //输出多少
    

    相关文章

      网友评论

          本文标题:闭包题

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