JavaScript函数柯里化的实现

本文介绍了JavaScript中函数柯里化(Currying)的概念,这是一种将多参数函数转换为接受单一参数并返回新函数的技术。提供了两种实现方式:一种是传统的JavaScript实现,通过递归和参数拼接来完成;另一种是利用ES6的剩余参数和条件运算符简化实现。这两种方法都展示了柯里化如何帮助我们更好地组织和重用代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数柯里化指的是一种将多种参数的一个函数转换成一系列使用一个参数的函数的技术

function curry(fn,args){
    //获取函数需要的参数长度
    let length = args.length;
    args = args || [];

    return function(){
      let subArgs=args.slice(0);
      //拼接得到现有的所有参数
      for(let i=0;i<arguments.length;i++){
        subArgs.push(arguments[i]);
      }
      //判断参数的长度是否已经满足函数所需参数的长度
      if(SubArgs.length>=length){
        //如果满足,执行函数
        return fn.apply(this,subArgs)
      }else{
        //如果不满足,递归返回柯里化的函数,等待参数的传入
        return curry.call(this,fn,subArgs);
      }
    }
  }

  //es6实现
  function curry(fn,...args){
    return fn.length <= args.length ? fn(...args) : curry.bind(null,fn,...args);
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值