一个关于valueOf的JavaScript的面试题
实现一个sum方法使其有以下表现
sum(2,3).valueOf() //5
sum(2,3,4).valueOf() //9
sum(2,3)(4).valueOf() //9
sum(2,3,4)(2)(3,4).valueOf() //18
前面部分sum()
,sum()()
都好说。但是怎么重写valueOf让其打印前面执行方法返回的数据的和?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
sum()
的结果可以继续使用()
运算符,说明sum()
返回的是一个函数(函数/函数表达式/箭头函数的统称);另外,这个返回值还有valueOf()
方法,所以可以先搭个框然后,sum() 的参数累加之和会累加到下一次对返回值(柯里化函数)的调用,不妨先把和算出来保存起。然后
fn
调用的时候,会返回一个类似的fn
,也就是sum()
的返回值,所以可以处理成对sum()
的调用——这段说不太明白,不如直接看代码:结果:
答案在这: https://segmentfault.com/a/11...