函数柯里化

定义

currying,又称部分求值。一个currying的函数首先会接受一些参数,接受了这些参数后,
该函数并不会立即求值,而是继续返回另一个函数,刚才传入的参数在函数形成的闭包中被保存起来。
待到函数真正需要求值时,之前传入的所有参数都会被一次性用于求值。

一个柯里化思想展示

var cost=(function() {
  var args=[];
  return function() {
      if (arguments.length===0) {
          var money=0;
          for (var i=0,l=args.length;i

一个通用的currrying函数

var currying=function(fn) {
  var args=[];
  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;
  return function() {
    for (var i=0;i

你可能感兴趣的:(函数柯里化)