Ref: 为什么要用闭包?
背景
闭包是自带运行环境的函数
发哥是自带背景音乐的男人~
就是有权访问另一个函数作用域的变量的函数。
函数式编程的闭包,就是函数的调味包。
方便用户调用函数。不必为了维护繁杂的外部状态而烦恼。
我们常见的闭包形式就是:【基于静态作用域的一个编程技巧】
(1) a 函数套 b 函数,
(2) 然后 a 函数返回 b 函数,
这样 b 函数在 a 函数以外的地方执行时,依然能访问 a 函数的作用域。
其中 “b 函数在 a 函数以外的地方执行时” 这一点,才体现了闭包的真正的强大之处。
静态作用域
Ref: 浅谈静态作用域和动态作用域
Ref: JavaScript 词法、静态、动态作用域初级理解
若干需要关注点(概念)
1)执行环境(作用域)函数执行环境 变量作用域 2)函数作用域和声明提前 3)自由变量 4)词法作用域和静态作用域 5)动态作用域