【发布时间】:2020-11-30 20:27:49
【问题描述】:
我的任务是从头开始编写 compose,以下是要求:
编写 Compose 和 Pipe 函数。
第一步:实现函数 Compose:
Compose 应该返回一个函数,该函数是一个列表的组合 任意长度的函数。
每个函数都在后面的函数的返回值上调用。
您可以将撰写视为通过其参数从右向左移动。
编写示例:
var greet = function(name){ return 'hi: ' + name;}
var exclaim = function(statement) { return statement.toUpperCase() + '!';}
var welcome = compose(greet, exclaim);
welcome('phillip'); // 'hi: PHILLIP!'
我主要依靠直觉来完成工作,这是我的解决方案:
var compose = function() {
var args = arguments
return function(param) {
var result = param
for (let i = args.length -1; i >=0; i --) {
result = args[i](result)
}
return result
}
};
我不明白的是:“菲利普”如何传递给参数? Compose 无法访问它
【问题讨论】:
-
我不明白这个问题。字符串直接传递给
param参数。 -
@Quentin 但是,compose 不接受任何参数,那么如何从 compose 中访问
param? -
不是。从
welcome访问!
标签: javascript algorithm scope closures