美文网首页
JavaScript 函数柯里化

JavaScript 函数柯里化

作者: 奕玄 | 来源:发表于2021-08-30 13:57 被阅读0次

🎯总结

利用闭包的特性,将参数分批次一一对应的传入原函数中去,并在收集完所有参数后执行最终函数得到结果。

curry

  1. 关键点

    • 利用闭包保存之前传入的各参数
    • 所有参数传递完毕时,不再返回函数,而是执行最后返回的函数,得到结果。
    • 执行最后返回的函数时,实际上是将所有参数一一对应传入原函数并执行。
  2. 简单实现

    • 利用 rest 参数获取函数的多余参数
    /* 这里参数可分两次传入 */
    function curry(fn, ...initArgs) {
      return function (...args) {
        return fn(...initArgs, ...args)
      }
    }
    
    function sum(a, b, c) {
      return a + b + c
    }
    console.log(curry(sum)(1, 2, 3))  // 6
    console.log(curry(sum, 1)(2, 3))  // 6
    console.log(curry(sum, 1, 2)(3))  // 6
    console.log(curry(sum, 1, 2, 3)())  // 6
    

相关文章

  • 掌握JavaScript函数的柯里化

    原文链接 Haskell和scala都支持函数的柯里化,JavaScript函数的柯里化还与JavaScript的...

  • 『JavaScript专题』之函数柯里化

    JavaScript专题之函数柯里化 定义 维基百科中对柯里化 (Currying) 的定义为: In mathe...

  • JavaScript函数柯里化

    概念 函数柯里化是指将一个多参数的函数转化成多个一个参数调用的函数的过程。 实现 柯里化的实现方式很多,如下: 此...

  • JavaScript 函数柯里化

    ?总结 利用闭包的特性,将参数分批次、一一对应的传入原函数中去,并在收集完所有参数后执行最终函数得到结果。 cur...

  • JavaScript

    JavaScript高级函数 惰性函数 函数柯里化 级联函数(链式函数) 设计模式 单例模式 构造函数模式 工厂模...

  • 手写简单.bind()实现

    手写一个实现柯里化的.bind() 柯里化:《函数柯里化小结》柯里化:前端开发者进阶之函数柯里化Currying ...

  • [译]JavaScript中的函数柯里化

    原文 Currying in JS 函数柯里化 函数柯里化以Haskell Brooks Curry命名,柯里化是...

  • 函数操作v1.0.0

    目录 函柯里化函数节流函数防抖 正文 函柯里化 函数节流 函数防抖

  • JavaScript 函数柯里化和偏函数

    1.柯里化 柯里化(英语:Currying),又译为卡瑞化或加里化。在数学和计算机科学中,柯里化是一种将使用多个参...

  • Javascript缓存函数&柯里化&偏函数

    缓存函数 memorizition 定义:将上次的计算结果缓存起来,当下次调用时,如果遇到相同的参数,就直接返回缓...

网友评论

      本文标题:JavaScript 函数柯里化

      本文链接:https://www.haomeiwen.com/subject/wgtoiltx.html