js柯里化的问题
我们都知道js柯里化如何实现,但是最终实现的效果一般是酱紫的:
sum(1)(2)(3)(4)()
但是后面多了一个()总是很不爽,也有不带()的实现,不过参数个数是确定的,所以,我想问:
console.log(sum(1)(2)(3))
这种直接输出6的怎么实现?注意参数可能更多也可能更少0.0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
问道js题目 编写add函数 然后 add(1)(2)(3)(4) 输出10 再考虑拓展性
你想
sum(1)(2)(3)
直接返回6,这不难实现。然后你又想
sum(1)(2)(3)(4)
返回的是10,那就不行了。因为你前面三次调用已经返回6了,然后你的代码就是6(4)了,这显然不行。
所以必须有个地方做区分,要不就像第一种一样以不传参的方式取得结果,要不就只能固定次数了。
好人说得对,有一些实现,通过修改toString或者valueOf方法使结果返回数字的,其实返回的还是一个function。
输出结果都是15