求教!有关函数式编程compose疑问
才学习函数式编程,在网上看见别人对compose方法的实现
function compose(...args) {
let length = args.length
let count = length - 1
let result
return function f1(...arg1) {
result = args[count].apply(this, arg1)
if (count <= 0) {
count = length - 1
return result
}
count--
return f1.call(null, result)
}
}
对这段代码有疑惑
result = args[count].apply(this, arg1)
为什么要改变args[count]的this指向,compose处理的不是纯函数吗?apply是为了解决什么而存在的。求举例说明!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
纯函数里难道不能有
this
么…Array.prototype.map
不服…compose 函数本来就是为了把多个函数合成一个函数:
从输入里面取出 a, 然后在结果里取出 b, 然后再输出
结果是 1
不去传递这个 this 的话,compose 参数里用到 this 的地方就有问题