`
sjpsega
  • 浏览: 299057 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

js的柯里化

    博客分类:
  • web
 
阅读更多

有人在群里出了到一道题目:

 

var s = sum(1)(2)(3) ....... 最后 alert(s) 出来是6
var s = sum(1)(2)(3)(4) ....... 最后 alert(s) 出来是10
问sum怎么实现

 

 刚看到题目,我第一反应是sum返回的是一个function,但是没有最终实现,印象中看到过类似的原理,但是记不清了。

 

 后来同事说,这个是叫柯里化,

 实现方法比较巧妙

 

function sum(x){
   var y = function(x){
       return sum(x+y)
   }
   y.toString = y.valueOf = function(){
     return x;
  }
   return y;
}

 

相关阅读:

研究一下vlaueOf和toString方法

闭包与柯里化

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics