函数柯里化:
其实就是将使用多个参数的函数转换成一系列使用一个参数的函数的技术
例如:
function add(a, b, c) {
return a + b + c
}
add(1, 2, 3)
let addCurry = curry(add)
addCurry(1)(2)(3)
实现:
function curry(fn) {
let loop = (...arg) => {
if (arg.length === fn.length) return fn(...arg)
return (arg1) => loop(...arg, ...arg1)
}
return loop
}
不要被名字吓倒其实挺简单的,记不住就背,慢慢就理解了!