javascript回调函数中的参数从哪里来?

2024-01-26

我理解回调函数的本质是函数作为参数传递给另一个函数后再次执行。但是,我对回调函数内的变量来自何处感到困惑,如以下 node.js 示例所示:

router.get('/', function(req, res){
    res.render('index', {});
});

变量 req 和 res 如何填充?如果有一个例子解释我如何在不声明 res 的情况下调用 res.render(...) ,我将不胜感激。


它们来自于调用时调用普通非回调函数时的相同位置。

如果你有这个功能的话

function add (a, b) {
  return a + b
}

当您调用 add 时,您可以知道 a 和 b 来自,

add(1,2)

这和回调的原理是一样的,不要因为稍后调用它而让你的大脑变得扭曲。

在某些时候,您传递给 router.get 的函数将被调用,当它调用时,它将接收req and res.

让我们假设 router.get 的定义如下所示

router.get = function(endpoint, cb){
   //do something
   var request = {}
   var response = {}
   cb(request, response) // invocation time
}

在您的示例中,节点只需在任何时候传递您的函数请求和响应即可.get被调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript回调函数中的参数从哪里来? 的相关文章

随机推荐