JavaScript函数调用中的两组括号?
我正在读一本关于Node.js和Express的书,其中一个例子显示了一个带有两组括号的函数调用。我希望得到一个关于代码的解释,因为我以前没有见过这个。代码如下:JavaScript函数调用中的两组括号?,javascript,node.js,Javascript,Node.js,我正在读一本关于Node.js和Express的书,其中一个例子显示了一个带有两组括号的函数调用。我希望得到一个关于代码的解释,因为我以前没有见过这个。代码如下: app.use(require('cookie-parser')(credentials.cookieSecret)); 再一次,让我困惑的是第二组偏执狂,他们似乎在传递“credentials.cookieSecret”作为论点,但是传递给什么呢?这看起来像是一种生活,但我想不是 谢谢 如果函数返回另一个函数,就会发生这种情况 这
app.use(require('cookie-parser')(credentials.cookieSecret));
再一次,让我困惑的是第二组偏执狂,他们似乎在传递“credentials.cookieSecret”作为论点,但是传递给什么呢?这看起来像是一种生活,但我想不是
谢谢 如果函数返回另一个函数,就会发生这种情况 这里有一个例子:
var increment = function(base){
return function(adding){
return base + adding;
};
}
var sum = increment(2)(3); // sum = 5
就是
var setBase = increment(2); // setBase = function(adding){ return 2 + adding; }
var sum = setBase(3);
require('cookie-parser')
也是一个函数。因此,可以使用凭据再次调用它。cookiesSecret
这种用法对你来说可能很奇怪,但它是很自然的
请看下面的代码
var adder = function(a) {
return function(b) { return a + b; }
}
adder(3)(4) == 7
在下面的链接中,您可以检查cookieParser
是否是一个返回另一个函数的函数。
cookie解析器
模块返回一个函数,该函数在您共享的代码中被调用
app.use(require('cookie-parser')(credentials.cookieSecret));
可以改写为:
var cookieParser = require('cookie-parser')
var cookieParserInstance = cookieParser(credentials.cookieSecret)
app.use(cookieParserInstance)
因为
require('cookie-parser')
返回一个函数。完整的函数声明位于@haim770。非常感谢。谢谢你的帮助。