为什么从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太棒了!谢谢