当前位置: 首页 > news >正文

【前端手撕】函数柯里化curry

柯里化是把一个接受多个参数的函数,转换成接受单一参数(或部分参数)并返回一个新函数,直到收到全部所需参数后才执行原函数的过程。

例如:

function add(a, b, c) { return a + b + c } const curriedAdd = curry(add); curriedAdd(1)(2)(3) // 6 curriedAdd(1, 2)(3) // 6 curriedAdd(1)(2, 3) // 6

本质是参数收集,当收集到的参数个数达到原函数定义的形参个数(fn.length)时,就调用原函数。

代码

const curry = (fn, ...args) => { if (args.length >= fn.length) { return fn(...args) } else { return (...rest) => { return curry(fn, ...args, ...rest) } } }

注意:这里的fn.length是函数定义时声明的形参个数(不包括剩余参数)。一般这个实现是针对常规固定参数函数的。

http://www.gsyq.cn/news/1546341.html

相关文章:

  • 10分钟搞定黑苹果:OpCore Simplify智能配置工具终极指南
  • 2026年AI呼叫系统推荐指南:五款智能电话系统多维度深度测评 - 品牌2026
  • Java入门到精通-03 第一个程序——Hello World
  • 成都奔驰维修保养避坑指南:资深玩家教你选对专修店,少花冤枉钱
  • 腾讯元宝代码如何导出使用?AI导出鸭实测:告别公式乱码
  • 2026 安徽六安全区域彩钢瓦修缮公司甄选指南|4 家正规企业深度对比 + 权威 TOP 推荐 + 完整避坑手册 - 本地便民网
  • AMD Ryzen SDT调试工具终极指南:解锁处理器隐藏性能的专家级方案
  • 客餐厅白蜡木家具定制哪家价格合理? - myqiye
  • DeepSeek识图模式:国产多模态OCR与语义理解的工程化突破
  • 5分钟快速上手:开源AI视频增强工具Video2X完整指南
  • 性价比高的重型筛分站,宝创工程机械推荐 - myqiye
  • 长文生成延迟与质量的耦合关系解析
  • 跨平台游戏移植新范式:微信小游戏Unity WebGL适配方案深度解析
  • 哪家汽车贴膜专业公司不错?宣城市同享汽车服务有限公司上榜 - mypinpai
  • 肇庆市黄金回收+白银回收+铂金回收+彩金回推荐收门店 本地靠谱店铺指南及地联系方式址和 - 大熊猫898989
  • 常州振荣,专业防静电地板,靠谱之选 - mypinpai
  • 光遇七周年有什么内容 光遇七周年活动介绍
  • 镇江市黄金回收+白银回收+铂金回收+彩金回推荐收门店 本地靠谱店铺指南及地联系方式址和 - 大熊猫898989
  • 山东宏元环保生物质气化设备靠谱吗? - mypinpai
  • 如何快速解锁加密音乐文件:3步实现跨平台音乐自由播放
  • 郑州市黄金回收+白银回收+铂金回收+彩金回推荐收门店 本地靠谱店铺指南及地联系方式址和 - 大熊猫898989
  • AI工程的本质不是调参,而是系统思维重构
  • 过拟合诊断与防治:从数据根因到工业级七层防御体系
  • 黄石市黄金回收+白银回收+铂金回收+彩金回推荐收门店 本地靠谱店铺指南及地联系方式址和 - 大熊猫898989
  • 随州市黄金回收+白银回收+铂金回收+彩金回推荐收门店 本地靠谱店铺指南及地联系方式址和 - 大熊猫898989
  • 2026 安徽淮北全市域彩钢瓦翻新防水修缮公司 TOP4 权威测评|4 家企业优劣对比 + 完整避坑指南 - 本地便民网
  • 惠州市黄金回收+白银回收+铂金回收+彩金回推荐收门店 本地靠谱店铺指南及地联系方式址和 - 大熊猫898989
  • 平顶山市黄金回收+白银回收+铂金回收+彩金回推荐收门店 本地靠谱店铺指南及地联系方式址和 - 大熊猫898989
  • 如何快速掌握数据库管理:面向初学者的完整VSCode SQLite3编辑器指南
  • 丽水市黄金回收本地靠谱店铺指南+白银回收+铂金回收+彩金回推荐收门店 及地联系方式址推荐 - 盛世金银回收