函数柯里化/函数式编程

354 阅读1分钟
  • 函数柯里化的定义

    将一个含有多个参数的函数转化为一系列只有一个参数的函数
function plus(a,b,c){ // 普通函数
    return a*b*c
}
function plus(a){ // 柯里化函数
  return function(b){
    return function(c){
      return a*b*c
    }
  }
}

const plusWithTen = plus(10) // 形成一个可复用子函数
plusWithTen(20)(30) // 6000
  • 将任何函数柯里化的函数

function curry(fn,...args){
	return (..._args) => {
    	    return fn(...args,..._args)
    }
}

运用

function plus(a,b){
    return a*b
}
const cPlus = curry(plus,10);
cPlus(2) // 20