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 运算数的求值顺序
Aug 23 Javascript
javaScript面向对象继承方法经典实现
Aug 20 Javascript
初识Node.js
Sep 03 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
Oct 17 Javascript
JavaScript实现数据类型的相互转换
Mar 06 Javascript
jquery获取复选框的值的简单实例
May 26 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
Aug 02 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
Sep 06 Javascript
利用Javascript裁剪图片并存储的简单实现
Mar 13 Javascript
详谈js中标准for循环与foreach(for in)的区别
Nov 02 Javascript
vue init失败简单解决方法(终极版)
Dec 22 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 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
通俗易懂的php防注入代码
2010/04/07 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
python多进程读图提取特征存npy
2019/05/21 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
电影建党伟业观后感
2015/06/01 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python
完美解决golang go get私有仓库的问题
2021/05/05 Golang
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript