Dan*_*Liu 7 javascript node.js
我理解回调函数的本质在于,该函数作为参数传递给另一个函数后会再次执行。但是,我对回调函数中的变量来自何处感到困惑,如下面的 node.js 示例所示:
router.get('/', function(req, res){
    res.render('index', {});
});
变量 req 和 res 是如何填充的?一个解释我如何只调用 res.render(...) 而不声明 res 自己的例子将不胜感激。
它们来自与调用普通非回调函数时相同的地方,在调用时。
如果你有这个功能,
function add (a, b) {
  return a + b
}
当您调用 add 时,知道 a 和 b 来自于您就可以了,
add(1,2)
这与回调的原理相同,不要因为稍后调用它而让你的大脑变得扭曲。
在某个时候,您传递给 router.get 的函数将被调用,当调用时,它将接收req和res。
让我们假设 router.get 的定义是这样的
router.get = function(endpoint, cb){
   //do something
   var request = {}
   var response = {}
   cb(request, response) // invocation time
}
在您的示例中,只要.get被调用,节点就可以传递您的函数请求和响应。
| 归档时间: | 
 | 
| 查看次数: | 801 次 | 
| 最近记录: |