百度百科上说,在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。
看上面的解释有些抽象,写个实例来看看柯里化具体怎么样
//普通写法
let addtion = (a,b) => a+b
//柯里化写法
let curry = (a) => (b) => a+b
addtion(1,2)
curry(1)(2)很明显可以看出,柯里化函数是将参数一个一个传入函数中。
封装的柯里化函数
const curry = (fn, ...args) =>
args.length<fn.length ? (...arguments) => curry(fn,...args,...arguments) : fn(...args)封装好的柯里化函数我们可以直接拿来用,满足基本调用需求。