才学习函数式编程,在网上看见别人对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是为了解决什么而存在的。求举例说明!
纯函数里难道不能有
this
么…Array.prototype.map
不服…