闭包

闭包就是能够读取其他函数内部变量的函数。 在JavaScript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数”。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

function b () {
  const a = 1
  function getData () {
    console.log(a)
  }
  a()
}
b()

从上面可以看到,getData函数访问了b函数中的a变量,所以这个函数就是一个闭包。

不过也有另外一种解释,说闭包是带有数据的函数,按这个理解,则b中这一段组成一个闭包:

const a = 1
function getData () {
  console.log(a)
}
上次更新: