为什么从javascript函数返回匿名函数
在此函数返回一个匿名函数:为什么从javascript函数返回匿名函数,javascript,Javascript,在此函数返回一个匿名函数: function respondWithResult(res, statusCode) { statusCode = statusCode || 200; return function(entity) { if(entity) { return res.status(statusCode).json(entity); } return null; }; } 为什么我们在这里返回一个匿名函数,它返回一个值?我们有什么优
function respondWithResult(res, statusCode) {
statusCode = statusCode || 200;
return function(entity) {
if(entity) {
return res.status(statusCode).json(entity);
}
return null;
};
}
实体
是如何填充的,以及填充的内容是什么?我们将res传递给respondWithResult
,接下来我们为匿名函数中的一个参数获得了实体
,接下来会发生什么?这个参数填充了什么值res
,那么直接这样做有什么错:
if(res){
//bla bla
}
return null
return Outlet.find().exec()
.then(respondWithResult(res))
.catch(handleError(res));
现在,res
是我们传递给respondWithResult
的内容。这就是匿名函数在参数中得到的结果吗?如果是,优势是什么?为什么不直接使用res
为什么我们在这里返回一个匿名函数,它返回一个值?我们有什么优势,什么时候可以尝试这样的东西
这通常是因为它可以访问在其中声明的函数的范围。i、 e.局部变量statusCode
和res
。如果没有更多的上下文,这在这里为什么有用还不清楚
这个匿名函数的参数实体是如何填充的,填充的内容是什么
这是一个函数参数。它会被调用时传递给它的任何内容填充(这不在您共享的代码中)
正如您所指出的,函数将返回(而不是立即执行)。其他一些代码稍后将调用它
现在,res是我们传递给respondewithresult的值。这就是匿名函数在参数中得到的结果吗?如果
否。返回的函数被传递到
然后
。当承诺得到解决时,结果会传递给它。您能给我指一下可以详细解释该主题的资源吗?我找不到这方面的例子啊!我从你的更新中得到了它。“不。返回的函数将传递给。当承诺解析时,结果将传递给它。”完全有道理:D太棒了!谢谢