gpt4 book ai didi

javascript - 为什么从 javascript 函数返回匿名函数

转载 作者:行者123 更新时间:2023-11-29 10:34:01 26 4
gpt4 key购买 nike

这里函数返回一个匿名函数:

function respondWithResult(res, statusCode) {
statusCode = statusCode || 200;
return function(entity) {
if(entity) {
return res.status(statusCode).json(entity);
}
return null;
};
}
  1. 为什么我们在这里返回一个返回值的匿名函数?我们有什么优势以及何时尝试这样的事情?

  2. 这个匿名函数的参数 entity 是如何填充的?填充的是什么?我们将 res 传递给 respondWithResult,接下来我们为匿名函数中的参数获取 entity 究竟发生了什么?这个参数填充了什么值?

  3. 如果它只填充了 res,直接这样做有什么问题:

    if(res){
    //bla bla
    }
    return null

编辑:函数调用如下:

 return Outlet.find().exec()
.then(respondWithResult(res))
.catch(handleError(res));

现在,res 是我们传递给 respondWithResult 的内容。这是匿名函数在参数中得到的吗?如果是,有什么好处?为什么不直接使用res?

最佳答案

Why is it that we are returning an anonymous function here that returns a value? What advantages do we have and when to try something like this?

通常这样做是因为它可以访问它在其中声明的函数的范围。即局部变量 statusCoderes。如果没有更多上下文,就不会立即明白为什么它在这里有用。

How and what is this anonymous function's argument entity is populated with?

这是一个函数参数。当它被调用时,它会填充传递给它的任何内容(这不在您共享的代码中)。

正如您所指出的,该函数返回(不会立即执行)。其他一些代码稍后会调用它。

Now, res is what we pass to respondWithResult. Is that what the anonymous functions gets in the argument? If

没有。返回的函数传递给 then。当 promise 解决时,结果将传递给它。

关于javascript - 为什么从 javascript 函数返回匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39680799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com