js函数柯里化

定义

柯里化,也称为局部套用,是把多参函数转换为一系列单参函数并进行调用的技术。

add(4,5)=>add(4)(5)

作用

降低通用性、提高适用性

编码中表现形式为 参数复用、提前返回、延时执行

编写一个curry

function curry(fun,args){
      var length=fun.length; // 函数fun的参数个数
      args=args||[]; // 首次调用赋值 args=[]
      return function(){
        // 获取参数arhuments
        var _args = [].slice.apply(arguments) // arguments不是数组,在此转化为数组
        _args=_args.concat(args)
        // 判断是否达到参数个数
        if(_args.length<length){
          return curry.call(this,fun,_args) // 未达到则继续回调
        }else{
          return fun.apply(this,_args) // 满足个数执行
        }
      }
    }

示例

function add(a,b,c){
      return a+b+c
    }
var addc=curry(add)
console.log(addc)
console.log(addc(3)(4)(5)) // 12
console.log(addc(3,4)(5)) // 12
console.log(addc(3)(4,5)) // 12
console.log(addc(3,4,5)) // 12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值