js函数柯里化的方法和作用实例分析


Posted in Javascript onApril 11, 2020

本文实例讲述了js函数柯里化的方法和作用。分享给大家供大家参考,具体如下:

函数柯里化的方法:

1,利用数组的reduce方法可实现柯里化,具体参见我的另外一篇文章

2,代码如下

const curry = (fn, ...args) =>{
   console.log('args',args)
  // console.log(fn.length,args.length)
  return args.length < fn.length
  // 参数长度不足时,重新柯里化该函数,等待接受新参数
  ? (...arguments) => {
    console.log('arguments',arguments)
    return curry(fn, ...args, ...arguments)
  }
  // 参数长度满足时,执行函数
  : fn(...args);
}
function sumFn(a, b, c) {
  return a + b + c;
}
var sum = curry(sumFn); 
const one = sum(2)
console.log('one:',one.toString())
const two = one(3)
console.log('two:',two.toString())
const three = two(5)
console.log('three:',three.toString())
 
//console.log(sum(2)(3)(5));//10
// console.log(sum(2, 3, 5));//10
// console.log(sum(2)(3, 5));//10
// console.log(sum(2, 3)(5));//10

js函数柯里化的方法和作用实例分析

函数柯里化的主要作用:

  • 参数复用。
  • 提前返回 ? 返回  接受余下的参数  且返回结果  的  新函数。
  • 延迟执行 ? 返回新函数,等待执行。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Javascript代码混淆综合解决方案-Javascript在线混淆器
Dec 18 Javascript
jquery CSS选择器笔记
Mar 29 Javascript
用js小类库获取浏览器的高度和宽度信息
Jan 15 Javascript
JavaScript调用ajax获取文本文件内容实现代码
Mar 28 Javascript
基于socket.io+express实现多房间聊天
Mar 17 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
May 12 Javascript
Vue内容分发slot(全面解析)
Aug 19 Javascript
vue-router启用history模式下的开发及非根目录部署方法
Dec 23 Javascript
Vue仿微信app页面跳转动画效果
Aug 21 Javascript
微信小程序 textarea 层级过高问题简单解决方案
Oct 14 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
Aug 31 Javascript
VUE实现吸底按钮
Mar 04 Vue.js
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 #Javascript
JavaScript运行机制实例分析
Apr 11 #Javascript
js中调用微信的扫描二维码功能的实现代码
Apr 11 #Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
Apr 11 #Javascript
微信分享invalid signature签名错误踩过的坑
Apr 11 #Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
Apr 11 #Javascript
vue使用微信扫一扫功能的实现代码
Apr 11 #Javascript
You might like
php xml 入门学习资料
2011/01/01 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
js定时器实例分享
2016/12/20 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
Python使用新浪微博API发送微博的例子
2014/04/10 Python
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
python爬取网页转换为PDF文件
2018/06/07 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
python中import与from方法总结(推荐)
2019/03/21 Python
Python微信操控itchat的方法
2019/05/31 Python
Python创建或生成列表的操作方法
2019/06/19 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
Fossil美国官网:Fossil手表、手袋、珠宝及配件
2017/02/01 全球购物
计算机应用毕业生自荐信
2013/10/23 职场文书
致裁判员加油稿
2014/02/08 职场文书
综合实践活动方案
2014/02/14 职场文书
初中班主任评语大全
2014/04/24 职场文书
写得不错的求职信范文
2014/07/11 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
无罪辩护词范文
2015/05/21 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
如何使用Python对NetCDF数据做空间相关分析
2021/04/21 Python
压缩Redis里的字符串大对象操作
2021/06/23 Redis