在javascript中,''function({})(req,res)''的最后一个括号是什么意思?

时间:2017-08-26 21:08:41

标签: javascript node.js callback

我终于在一年后重新开始认真的软件开发并丢失了我的javascript参考书。很抱歉,如果这是一个愚蠢的问题,但我忘记了这个结束括号在javascript中的意思。

以下是一些示例代码:

login: function (req, res) {
    example.function('optionA', function (err, user) {
        if (err) return res.send(err);
        return res.send(user);
    })(req, res);
});

(req,res)令我困惑的是,这究竟是如何起作用的?

提前致谢。现在感觉不像阿尔伯特爱因斯坦!

2 个答案:

答案 0 :(得分:5)

看起来example.function会返回一个函数,然后您调用并传入reqres

这样做:

let func = example.function('optionA', function (err, user) {
    if (err) return res.send(err);
    return res.send(user);
});

func(req, res);

答案 1 :(得分:1)

这是立即调用的函数表达式的示例。您正在创建一个函数并立即调用它。更多详情:https://en.wikipedia.org/wiki/Immediately-invoked_function_expression