什么是额外的括号集

时间:2015-06-02 11:57:16

标签: javascript nested-function

我一直在学习JavaScript和AngularJS,并且已经看到了带有一组额外括号的函数。这是什么?它是如何工作的?     例如:myFunc(args)(moreArgs)

2 个答案:

答案 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"