一、概念
接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
二、add函数示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| function add(x, y) { rerturn x + y }
function curryingAdd(x) { return function(y) { return x + y } }
add(1, 2) curryingAdd(1)(2)
|
三、优点
1. 参数复用
例:封装正则校验
1 2 3 4 5 6 7 8 9 10 11
| function curryingCheck(reg) { return function(txt) { retunr reg.test(txt) } }
var hasNumber = curryingCheck(/\d+/g)
hasNumber('test1')
|
2. 提前确认
例:封装dom操作
1 2
| var on = function(isSupport)
|
转发: https://www.jianshu.com/p/2975c25e4d71