闭包:函数及其相关的引用环境组合而成的实体。

# 示例

其中,方法fun1的环境、两个变量、方法getName共同组成了闭包

function fun1() {
  let firstName = 'hong'
  let lastName = 'diandian'
  function getName() {
    return firstName+lastName
  }
  return {
      getName: getName()
  }
}

# 应用

  • 小型模块化
  • 模拟面向对象,对代码进行封装和抽象(上面例子将代码封装为一个对象返回调用)
# 参考资料

什么是闭包?

跨越边界:闭包

关于闭包比较清晰的解释