天天看点

关于js闭包闭包概念

闭包概念

  • 闭包就是可以读取其他函数内部变量的函数

变量的作用域

  • 要理解闭包,首先要知道js特殊的变量作用域。
  • 变量作用于有两种:全局变量和局部变量
  • js中,函数内部可以直接读取父级函数的变量
  • 举例说明:

    var n = 99;

    function f1(){

    conosle.log(n)

    }

    f1() // => 99

  • js中,函数外部读取不到函数外部的变量
  • 举例说明

    function f1(){

    var n = 99

    }

    f1()

    console.log(n) // n is not defined

    如何从外部读取到内部的变量

    • 有时候我们需要得到函数内部的变量,正常情况写是获取不到的,但是通过“闭包”,我们可以获取到函数内部的变量
    • 举例说明

      function f1(){

      var n = 99

      function f2(){

      console.log(n)

      }

      return f2

      }

      f1()() // 99

继续阅读