美文网首页
柯里化辅助函数的实现

柯里化辅助函数的实现

作者: yongningfu | 来源:发表于2017-03-20 16:24 被阅读0次

最近看 javascript设计模式与开发实战 里面有个通用的柯里辅助函数的实现,觉得不错,记录一下

//对fn进行柯里化
var curring = function(fn) {
  var args = []; //记录调用过程中的args
  //为了要返回function呢? 因为要把args fn进行闭包保留
  return function() {
    if (arguments.length === 0) {
      return fn.apply(this, args);
    } else {
      [].push.apply(args, arguments);
      return arguments.callee; //返回当前调用函数
    }
  }
}

var cost = function() {
  var money = 0;
  for (var i = 0; i < arguments.length; i++) {
    money += arguments[i]
  }
  return money;
}

//转为curry
cost1 = curring(cost);
cost1(100);
cost1(200);
cost1(300);
console.log(cost1());

cost2 = curring(cost);
console.log(cost2(100)(200)(300)());

tips: arguments.callee 是返回当前调用的函数,比如即含有当前arguments的函数

相关文章

  • 柯里化辅助函数的实现

    最近看 javascript设计模式与开发实战 里面有个通用的柯里辅助函数的实现,觉得不错,记录一下 tips: ...

  • 手写简单.bind()实现

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

  • 函数柯里化

    函数柯里化,实现累加。

  • js柯里化

    柯里化函数的实现hyCurrying

  • 柯里化函数实现

    柯里化函数实现 柯里化函数的实现实质上是一个收集参数的过程, 也许柯里化的内涵及应用场景理解起来比较困难, 但是实...

  • 函数-柯里化

    面试题-- 函数柯里化怎么实现

  • JS模拟实现bind,call,apply

    call apply bind 简单实现 函数柯里化的实现 构造函数的实现 ES6实现 结合实现

  • JavaScript函数柯里化

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

  • Swift | 柯里化实现一个函数指定加数

    柯里化简介 柯里化指的是从一个多参数函数变成一连串单参数函数的变换 函数演示 代码实现 补充 这种方式是柯里化的一...

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

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

网友评论

      本文标题:柯里化辅助函数的实现

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