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 判断字符串是否为数字的简单方法
Jul 25 Javascript
JS获取单击按钮单元格所在行的信息
Jun 17 Javascript
JavaScript获取网页表单action属性的方法
Apr 02 Javascript
JavaScript获取按钮所在form表单id的方法
Apr 02 Javascript
jquery 构造函数在表单提交过程中修改数据
May 25 Javascript
JavaScript计算某一天是星期几的方法
Aug 05 Javascript
jqGrid用法汇总(全经典)
Jun 28 Javascript
Bootstarp基本模版学习教程
Feb 01 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
Mar 10 Javascript
微信小程序switch组件使用详解
Jan 31 Javascript
elementUI select组件默认选中效果实现的方法
Mar 25 Javascript
js实现简单的秒表
Jan 16 Javascript
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
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
php allow_url_include的应用和解释
2010/04/22 PHP
php上传excel表格并获取数据
2017/04/27 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
打包发布Python模块的方法详解
2016/09/18 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
Python3爬楼梯算法示例
2019/03/04 Python
python实现维吉尼亚算法
2019/03/20 Python
python flask安装和命令详解
2019/04/02 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
Jupyter Notebook打开任意文件夹操作
2020/04/14 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
私人会所最新创业计划书范文
2014/03/24 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
接收函格式
2015/01/30 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
中学团支部工作总结
2015/08/13 职场文书
多人股份制合作协议书
2016/03/19 职场文书
二年级作文之动物作文
2019/11/13 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
vscode内网访问服务器的方法
2022/06/28 Servers
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers