简介
柯里化(Currying)是把接收多个参数的原函数变换成接受一个单一参数(就是将使用多个参数的函数转换成一系列使用一个参数的函数的技术)并返回一个新的函数,新的函数能够接受余下的参数,并返回和原函数相同的结果。
function currying(fn,...rest1){
return function(...rest2) {
return fn.apply(null,rest1.concat(rest2))
}
}
例子
function sayHello(name,age,fruit){
console.log(`我叫${name},我${age}岁了,我喜欢吃${fruit}`);
}
//传入第一个参数
let curryingShowMsg=currying(sayHello,"lpq")
//传入剩余参数
curryingShowMsg(18,"apple")