函数中的这些节点jsvariables是什么?
我正在用NodeJS,Express和PassportJS创build一个API,但我认为这是一个JavaScript问题。
app.get('/test', function (req, res, next) { passport.authenticate('bearer', { session: false }, function (err, user, info) { if (user === false) { res.send('ko'); } else { res.send('ok'); } })(req, res, next); });
我的问题是:
为什么在validationfunction之后(req, res, next)
? 它与范围有关吗?
似乎函数password.authenticate
返回一个函数/闭包。 代码是这样的
foo(x, y)(z);
即调用foo(x, y)
所返回的函数用参数z
调用。
一个非常简单的例子是
function multiplier(k) { return function(x) { return x*k; }; } console.log(multiplier(7)(6)); // outputs 42
()
调用函数。 它里面的variables作为parameter passing给它。 你可以看到他们进入你的代码行的包含function。