额外的括号是什么

What is the extra set of parentheses for

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

额外的设置用于 运行 和 return 另一个功能。因此,使用您的示例:myFunc 将采用一个参数,return 将采用第二个函数(可以匿名命名):

function myFunc(args) {
  return function (moreArgs) {
    return args + ' ' + moreArgs;
  };
}

var myMsg = myFunc("This")("works!");
alert(myMsg);

在javascript中一个函数可以return一个函数并且returned函数可以被立即调用。例如:

function a () {
    return function () {
        console.log('hello');
    }
}

调用 returned 函数的一种方法是:

var b = a(); // b is now a function returned by a
b(); // logs "hello"

但在 javascript 你也可以这样做:

a()(); // calls the returned function immediately, logs "hello"