需要解释这个javascript函数代码,它在一个输入上执行多个函数

需要解释这个javascript函数代码,它在一个输入上执行多个函数,javascript,Javascript,问题:您的任务是编写一个高阶函数,将一元函数列表链接在一起。换句话说,它应该返回一个对给定函数进行左折叠的函数。 例子: 链式([a,b,c,d])(输入) 应产生与相同的结果 d(c(b(a(输入))) 并将其输出到console.log中 console.log(chained([f1,f2,f3])(0)); 产出:4 我的问题是,当函数数组(即[f1,f2,f3])和输入(0)定义为类似链式([f1,f2,f3])(0)时,函数如何区分它们 如果您在第//2行中控制台.log(inpu

问题:您的任务是编写一个高阶函数,将一元函数列表链接在一起。换句话说,它应该返回一个对给定函数进行左折叠的函数。 例子: 链式([a,b,c,d])(输入)

应产生与相同的结果

d(c(b(a(输入)))

并将其输出到console.log中

console.log(chained([f1,f2,f3])(0));
产出:4

我的问题是,当函数数组(即[f1,f2,f3])和输入(0)定义为类似链式([f1,f2,f3])(0)时,函数如何区分它们
如果您在第//2行中控制台.log(input),我们将得到0,这是我的问题。

算术从未被明确检查过,但是
fn(input)
只向每个函数传递一个参数,因此如果算术大于1(其余参数都是必需的),那就成问题了。一元函数保证工作。从技术上讲,没有参数的函数也是如此。我不确定是否理解您的问题,但
chained([f1,f2,f3])
返回一个等待单个
输入的函数。将
(0)
添加到以
0
作为
input
立即返回函数的结束调用中。也许这更清楚:
const f4=chained([f1,f2,f3]);f4(0);//->4
。在本例中,
f4
是通过调用
chained
返回的函数,它正在等待一个
input
参数。谢谢大家,我得到了它。算术从未被显式检查,但是
fn(input)
只向每个函数传递一个参数,因此如果算术大于1(其余的参数都是必需的),这将是一个问题。一元函数保证工作。从技术上讲,没有参数的函数也是如此。我不确定我是否理解你的问题,但是
链接([f1,f2,f3])
返回一个等待单个
输入的函数。添加
(0)
到以
0
作为
input
立即返回函数的结束调用。也许这更清楚:
const f4=chained([f1,f2,f3]);f4(0)在这个例子中,
f4
是通过调用
chained
返回的函数,它正在等待一个
输入
参数。谢谢大家,我得到了它。
function f1(x){ return x*2 }
function f2(x){ return x+2 }
function f3(x){ return Math.pow(x,2) } 
console.log(chained([f1,f2,f3])(0));