前端

JavaScript里闭包的定义、作用

2019-08-25聚力创意

闭包关键点:

1. 作用域内部函数可访问函数外部的变量,但在函数外部无法直接访问函数内部的变量

2. 当做值的函数可以当做值直接赋值,也可以当做值return

3. 自由变量外层作用域中声明的变量

// 当做值赋值
(() => {
  let count = 0
  window.addCount = () => {
    count++
    return count
  }
})()

// 当做值返回
const addCount = (() => {
  let count = 0
  return () => {
    count++
    return count
  }
})()

形成在执行过程完毕后,返回函数,或者将函数保存下来,即形成闭包。

定义持有自由变量的函数。

作用间接访问操作函数的内部数据,缓存数据、实现数据私有。

蜀ICP备17044229号