函数的参数在哪里传递

时间:2019-05-01 04:23:41

标签: javascript node.js function express callback

NetStream.time

调用该函数时,该函数的实际参数在哪里传递,以及为该函数提供参数的原因。

我对函数的理解是,首先您需要函数定义

app.use(function(req, res, next) {
   console.log(req)
});

其中x是参数。仅此代码块将不会执行任何功能,因为尚未调用它并提供了参数

function timesTwo(x){
   return 2*x
}

仅有效,因为我已经调用了函数并传递了参数3

那为什么

timesTwo(3) //will return 6

工作,如果我没有调用/提供类似timesTwo函数的参数

2 个答案:

答案 0 :(得分:1)

您正在传递一个回调函数,稍后将调用它。

这里是一个例子:

const app = {
  list:[],
  use(fn) {
    // save  the reference to the function so it can be called later
    this.list.push(fn);
  },
  handle() {
    // The callback function is called here. Notice that I don't know what
    // the function was called, and it doesn't matter if it was a named
    // or anonymous function. I just call it with whatever arguments
    // I want.
    const time = new Date().toISOString();
    this.list.forEach( fn => fn( time ) );
  }
}

setInterval(app.handle.bind(app), 2000);

function myFunction (time) {
  console.log('MYFUNC', time)
};

app.use(myFunction); // Adds a named function
app.use( function(time) { console.log("Anonymous", time) } ); // adds an anonymous function

答案 1 :(得分:-1)

这不是用户定义的函数,它实际上是express框架中的中间件(您也可以说回调函数)。参数已经由快速框架设置/管理。当您请求发送到服务器时,它将自动执行。