当前位置:网站首页>闭包的简单理解

闭包的简单理解

2022-06-11 16:54:00 浩月.

闭包打通了一条在函数外部访问函数内部作用域的通道, 正常情况下函数外部是访问不到函数内部作用域变量的。

表象判断是不是闭包:

1. 函数嵌套函数

2. 内部函数被return

3. 内部函数调用外层函数的局部变量

应用场景:

1.  函数作为返回值

    function fn() {
      var count = 1

      function fn2() {
        console.log(count)
      }
      //返回一个函数,这个函数就是一个闭包
      return fn2
    }

    //f1 就是 box 函数
    var f1 = fn()

    //5秒以后调用f1函数,还是能打印count的值, 闭包能让局部变量常驻内存
    setTimeout(function () {
      f1()
    }, 5000)
    function fn() {
      var count = 1

      function fn2() {
        count += 1

        return count
      }

      return fn2
    }

    var f1 = fn()

    console.log(f1())
    console.log(f1())

2. 函数作为参数被传递(回调函数)

原网站

版权声明
本文为[浩月.]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_44643019/article/details/125217759