Javascript 使用多个函数的回调

Javascript 使用多个函数的回调,javascript,callback,Javascript,Callback,我得到了下面的javascript问题,并有一些问题。pipe(foo,bar,baz)(1,2,3)做什么?它是否传入3个带3个参数的函数?我不清楚表达式的语法 实现一个函数pipe(),该函数接受多个函数作为参数,并返回一个新函数,该函数将其参数传递给第一个函数,然后将结果传递给第二个函数,然后将第二个函数的结果传递给第三个函数,依此类推,最后返回最后一个函数的输出。换句话说,调用pipe(foo,bar,baz)(1,2,3)相当于调用baz(bar(foo(1,2,3))pipe(foo

我得到了下面的javascript问题,并有一些问题。
pipe(foo,bar,baz)(1,2,3)
做什么?它是否传入3个带3个参数的函数?我不清楚表达式的语法

实现一个函数
pipe()
,该函数接受多个函数作为参数,并返回一个新函数,该函数将其参数传递给第一个函数,然后将结果传递给第二个函数,然后将第二个函数的结果传递给第三个函数,依此类推,最后返回最后一个函数的输出。换句话说,调用
pipe(foo,bar,baz)(1,2,3)
相当于调用
baz(bar(foo(1,2,3))
pipe(foo,bar,baz)(1,2,3)
执行以下操作:

  • 它使用三个参数调用管道函数:foo、bar和baz。这个函数返回一个值,这里可能是一个函数
  • 它使用3个参数调用此函数(管道函数返回的函数):1、2和3

  • 剩下的作业由您决定:)

    函数调用该函数后的括号。如果括号内有标识符或文字值(多个以逗号分隔),则这些值将作为输入传递给函数。那么,表达式的第一部分:

    pipe(foo, bar, baz)
    
    只是调用
    pipe
    ,在本例中,
    foo
    bar
    baz
    是对3个函数的引用(不是对函数的调用,只是对它们的引用)

    现在一个函数可以返回一个值,而这个值本身就是一个函数。因此,如果是这种情况,并且我们“评估”了
    管道
    的返回值,那么调用该函数可能会:

    pipe(foo, bar, baz);
    
    结果如下:

    function(a, b, c) {
        // do something with a, b and c
    }
    
    在这种情况下,原始代码的剩余部分,
    (1,2,3)
    将用于调用返回的函数,并将
    1,2,3
    作为输入参数传递给它

    下面是一个工作示例:

    函数foo(x,y,z){ 控制台日志(x,y,z); } 功能条(){ //与问题/解决方案无关 } 函数baz(){ //与问题/解决方案无关 } //此函数需要3个函数作为输入 功能管道(funcA、funcB、funcC){ //调用此函数时,它将返回另一个 //功能。。。 返回函数(num1、num2、num3){ //该函数使用输入调用其他函数 //从管道中取出并将其传递给foo funcC(funcB(funcA(num1,num2,num3)); } }
    管道(foo、bar、baz)(1、2、3)
    管道
    接受三个函数作为其参数。它返回一个函数,该函数接受三个值作为其参数。该函数的结果应该相当于调用
    baz(bar(foo(1,2,3))
    。欢迎使用堆栈溢出!请仔细阅读,环顾四周,仔细阅读,特别是作业通常不是随意的;您的讲师、教程或课程将涵盖必要的主题,使您能够做到这一点。复习你的课程材料、课堂笔记等,并试着做这项工作。如果你遇到了一个特定的问题,彻底地研究它,如果你仍然困在那里,就发布你的代码和问题的描述。人们会乐意帮忙的。