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

 更新时间:2020年04月11日 13:43:42   作者:qdmoment  
这篇文章主要介绍了js函数柯里化的方法和作用,结合实例形式分析了js函数柯里化的方法、功能及操作注意事项,需要的朋友可以参考下

本文实例讲述了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

函数柯里化的主要作用:

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

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

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

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

相关文章

  • javascript实现页面滚屏效果

    javascript实现页面滚屏效果

    本文主要介绍了javascript实现页面滚屏效果的方法,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • array.prototype.silce.call 理解分析

    array.prototype.silce.call 理解分析

    在很多框架中与遇到这个方法,但一时没去研究这个方法,只要前段时间被问到,尴尬无奈收场。所以学习就要追根究底的精神,废话少说,说正题。
    2010-04-04
  • javascript实现在某个元素上阻止鼠标右键事件的方法和实例

    javascript实现在某个元素上阻止鼠标右键事件的方法和实例

    这篇文章主要介绍了javascript实现在某个元素上阻止鼠标右键事件的方法和实例,需要的朋友可以参考下
    2014-08-08
  • JavaScript数据类型区别及检测方法

    JavaScript数据类型区别及检测方法

    在JavaScript中,数据类型是编程中非常重要的概念,它决定了数据的性质、如何存储以及如何操作这些数据,本文介绍JavaScript数据类型区别及检测方法,感兴趣的朋友一起看看吧
    2024-04-04
  • 微信小程序实现图形验证码

    微信小程序实现图形验证码

    这篇文章主要为大家详细介绍了微信小程序实现图形验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Javascript类型系统之String字符串类型详解

    Javascript类型系统之String字符串类型详解

    这篇文章主要介绍了Javascript类型系统之String字符串类型详解的相关资料,需要的朋友可以参考下
    2016-06-06
  • ES6中Set和Map数据结构的简单讲解

    ES6中Set和Map数据结构的简单讲解

    大家心里是否产生过这样的疑问,JS中既然已经有对象这种数据结构,我们为什么还要再单独去使用Set或者Map呢?下面这篇文章主要给大家介绍了关于ES6中Set和Map数据结构的相关资料,需要的朋友可以参考下
    2022-08-08
  • JavaScript队列、优先队列与循环队列

    JavaScript队列、优先队列与循环队列

    这篇文章主要为大家详细介绍了JavaScript队列、优先队列与循环队列的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Threejs与Tween.js结合创建动画的详细图文教程

    Threejs与Tween.js结合创建动画的详细图文教程

    three.js和tween.js可以一起使用,实现复杂的动画效果,包括飞线动画,这篇文章主要给大家介绍了关于Threejs与Tween.js结合创建动画的相关资料,需要的朋友可以参考下
    2024-01-01
  • 解决ie img标签内存泄漏的问题

    解决ie img标签内存泄漏的问题

    下面小编就为大家带来一篇解决ie img标签内存泄漏的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论