0

今天看sf时,看到一个有趣的面试题,有个答案很好不过没有解释,实在没有看懂运行的过程,求大神解释一下。

有函数multi(2)(3)(4)=24,算法是2X3X4=24。
求解multi函数。

function multi(n){
  var fn = function(x) {
    return multi(n * x);
  };
  
  fn.toString = function() {
    return n;
  };
  
  return fn;
}
multi(1)(2)(3)(4) == 24; // true

查看全部 2 个回答

1

==类型转换 调用重写的toString方法 返回 n

推荐答案

2

函数的柯里化

链接描述