Closure

1. 概念

闭包是指拥有多个变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

2. 实现

function sum(list) {
    let total = 0
    return function() {
        list.forEach(item => {
            total += item
        })
        return total
    }
} 

3. 理解

全局变量/局部变量

4. 作用

  • 惰性求值
  • AOP
  • 函数节流
  • 分时函数

5. 优点

  • 读取局部变量
  • 缓存局部变量

6. 弊端

  • 内存泄露(手动置空)
  • 性能下降(局部变量)

你可能感兴趣的:(Closure)