js中函数柯里化的实现
什么是函数柯里化,有什么作用
在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。
主要作用
- 参数复用
- 提前返回 – 返回接受余下的参数且返回结果的新函数
- 延迟执行 – 返回新函数,等待执行。
function add(a, b) {
return a + b;
}
add(1, 2, 3)
var addCurry = curry(add);
addCurry(1)(2)(3)// 6
函数柯里化的实现
function currying(fn, ...args) {
return function () {
let rest = [...args, ...arguments]
if (rest.length < fn.length) {
return currying.call(this, fn, ...rest)
} else {
return fn.apply(this, rest)
}
}
}