前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript函数柯里化的实现

JavaScript函数柯里化的实现

作者头像
henu_Newxc03
发布2022-05-11 08:42:24
3790
发布2022-05-11 08:42:24
举报
文章被收录于专栏:Newxc03的前端之路

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

代码语言:javascript
复制
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);
  }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档