闭包:保护&保存
- 函数执行形成一个私有的上下文,此上下文中的私有变量,和上下文外的变量互不干扰,也就是把这些变量保护起来了,我们把函数的这种保护机制称之为闭包。【闭包是一种机制】
- 闭包的优点:
-
可以访问其他函数内部的变量
-
可以保存数据
-
可以封装私有数据和方法
- 闭包产生的场景:
-
立即执行函数(IIFE)
-
返回一个函数
-
函数作为另一个函数的参数
-
定时器、事件绑定、AJAX等的回调
- 闭包的应用:
-
防抖节流(返回一个函数)
-
科里化函数(返回一个函数)
-
组合函数(返回一个函数)
-
循环事件绑定(事件委托)
柯里化:又称部分求值,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。核心思想是把多参数传入的函数拆成单参数(或部分)函数,内部再返回调用下的一个单参数(或部分)函数,依次处理剩余的参数。