js闭包的理解

很多小伙伴对「闭包」这个概念的理解是云里雾里的,其实闭包这个概念没那么复杂。

闭包

闭包正确的定义是,假如一个函数能访问外部的变量,那么就形成了一个闭包,而不是一定要返回一个函数。

来看一段代码示例:

let a = 1
// 形成了一个闭包
function fn() {
  console.log(a)
}

function fn1() {
  let a = 1
  // 形成了一个闭包
  return () => {
    console.log(a)
  }
}
const fn2 = fn1()
fn2()

闭包的内容就是这么多,只要把闭包的定义牢记于心即可。

回顾一下,闭包的定义是,假如一个函数能访问外部的变量,那么就形成了一个闭包。