实现一个 柯里化函数
首先我们来了解一下 什么叫做 柯里化函数;
函数柯里化,就是可以将一个接受多个参数的函数分解成多个接收单个参数的函数的技术,直到接收的参数满足了原来所需的数量后,才执行原函数****
好处 代码复用 可扩展 节省代码空间
下面我们来 定义一个 柯里化函数
function curry(fn, ...args) {
const self = this;
// 判断当前参数是否获取完
if (args.length < fn.length) {
return function() {
const allArgs = Array.prototype.slice.call(arguments);
return self.curry(fn, ...allArgs, ...args);
}
}
return fn.apply(null, args)
},
定义一个 工具函数 实现对参数相加返回结果
function addFn(a,b,c) {
return a + b + c;
}
调用柯里化
<!--输出结果-->
let add = curry(addFn);
console.log(add (1,3)(3))
console.log( add (10)(10,3))