求解一个JS函数运行过程

今天看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
阅读 1.8k
2 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题