那十几万分之一

导航

面试题之柯里化函数

经典面试题

实现一个add 函数: add(1)(2)(3) = 6

看起来很简单的样子,目测应该是一个函数中返回一个函数,那么手动实现下呢

 

 

虽然log最后结果是6,但是其实sum函数并没有返回6,而是每次都返回了自己,那么这里就需要想一想如何让sum最后返回6呢?

这里面需要用到

Function.prototype.toString()

函数每次返回并调用自己的时候会隐式调用toString这个方法

那么修改后是这个样子的

 

这里需要注意下的就是如果修改原型的toString()方法,就需要使用alert。不过还有一个问题就是这个函数是每次传一个参数,如果是多个参数呢,比如add(1,2,3)(4),这就需要考虑不定参了

 

 实际上这个题就是经典面试中的柯里化函数,这个函数使得函数的使用更加灵活,低耦合....,当然柯里化函数不是简单的用来算和的,在实际工作中遇到了可以详细的再捣鼓捣鼓

 

 

 

posted on 2022-03-29 11:17  那十几万分之一  阅读(240)  评论(0编辑  收藏  举报