js实现一个无限累加的函数(柯里化)

655 阅读1分钟

面试的时候遇到了一个笔试题:

function  add(x) {________}; alert(add(2)(3)(4)); ``//填空,使结果为9

//貘大
function add(x) {
  var c = 0;
  return function (x) {
    c = c + x; arguments.callee.toString = function () {
      return c;
    };
    return arguments.callee;
  }(x);
};
alert(add(2)(3)(4)); 
//司徒正美
function add(a) {
  if (!isFinite(add.i)) {
    add.i = a
  } else {
    add.i += a;
  }
  add.valueOf = add.toString = function () {
    return add.i
  }
  return add;
}
alert(add(2)(3)(4))

参考原文:www.cnblogs.com/rubylouvre/…