【发布时间】:2016-10-12 20:23:42
【问题描述】:
我怎样才能拥有一个 JavaScript 函数,比如说 piper(),它接受多个函数作为其参数,并返回一个新函数,该函数将其参数传递给第一个函数,然后将结果传递给第二个函数,然后
将第二个的结果传递给第三个,依此类推,最后返回最后一个函数的输出。
像piper(foo, fee, faa)(10, 20, 30) 这样的东西相当于调用faa(fee(foo(10,20,30)))。
ps: 这是我几天前做的一次采访的一部分。
【问题讨论】:
-
你自己有没有尝试过?
-
@MikeC 我习惯在js中看到这样的函数 ali( saberi,i) {saberi(i)} ,不是这样的。带2个括号
-
@AliSaberi 请记住:您可以从函数返回函数。 See this question.
-
就像很多面试问题一样,如果您曾经编写过这样的代码,那么您应该通过代码审查。这绝对是疯了。
f(...)(...)(...)根本不可读。作为一项学术练习,提示在您的问题中:它“返回一个新功能”。