我一直在学习JavaScript和AngularJS,并且已经看到了带有一组额外括号的函数。这是什么?它是如何工作的?
例如:myFunc(args)(moreArgs)
。
答案 0 :(得分:3)
额外的设置用于运行和返回另一个功能。因此,使用您的示例:myFunc
将接受一个参数并返回第二个函数(可以匿名命名):
function myFunc(args) {
return function (moreArgs) {
return args + ' ' + moreArgs;
};
}
var myMsg = myFunc("This")("works!");
alert(myMsg);
答案 1 :(得分:1)
在javascript中,函数可以返回一个函数,并且可以立即调用返回的函数。例如:
function a () {
return function () {
console.log('hello');
}
}
调用返回函数的一种方法是:
var b = a(); // b is now a function returned by a
b(); // logs "hello"
但是在javascript中你也可以这样做:
a()(); // calls the returned function immediately, logs "hello"