什么是闭包

59 阅读1分钟

闭包

闭包就是能访问到外部函数作用域中变量的函数。

什么时候使用?

当我们需要隐藏一些不希望别人访问的内容时就可以使用闭包

构成闭包的条件

  1. 函数的嵌套
  2. 内部函数要引用外部函数中的变量
  3. 内部函数要作为返回值返回

举例

若我们想定义一个函数,每次调用返回它已被调用的次数,简单的实现方法如下:

 let num = 0
 
 function fn() {
     num++
     console.log(num)
 }

但这样做会导致num的值很容易就被他人修改,这是我们不希望看到的,故可以用闭包来解决。

 function fn() {
     let num = 0
     return () => {
         num++
         console.log(num)
     }
 }

\