关于web:Javascript:函数调用后两组括号的好处是什么

Javascript: What is the benefit of two sets of parentheses after function call

我知道在Javascript中一个函数可以返回另一个函数,它可以立即调用。 但我不明白这样做的原因。 有人可以解释为什么你可能想在你的代码中这样做的原因和好处? 返回'hello'的函数是否被视为闭包?

1
2
3
4
5
6
7
8
function a () {
return function () {
    console.log('hello');
  }
}

//then calling the function
a()();


Can someone please explain the reason and benefit why you might want to do this in your code?

当你在调用函数时总是这样做时没有理由这样做(在你的情况下是a)。 一般情况下的原因是a的作者允许您可能不想立即调用结果函数。 所以a()();案例只是一般案例的一个特例

1
2
3
var f = a();
// later...
f();

Also, is the function that returns 'hello' considered a closure?

是的,从技术上讲,虽然在你的例子中没有任何特殊的东西可以关闭a还没有关闭,因为aa中的变量没有参数。

更多(在我的贫血博客上):闭包并不复杂