javascript - javascript函数中的第二组括号调用了什么?

标签 javascript closures

在此示例中,第二组 pf 括号在 foo()() 中起什么作用?

function foo() {
var bar = "bar";

  return function (){
    console.log(bar);
  };

}

function bam() {
  foo()(); // <--------------
}

bam ();

我试图了解闭包,我遇到了这个例子,其中使用了 ()() 这让我感到困惑!

最佳答案

What do the second set of parenthesis do in foo()()?

第一个括号正在调用 foo 函数。第二组括号调用 foo 返回的匿名函数。

换句话说,第二组括号调用以下匿名函数:

function() {
  console.log(bar);
}

函数 foo 返回的值基本上是这样计算的:

function bam() {
  (function() {
    console.log("bar");
  })();
}

关于javascript - javascript函数中的第二组括号调用了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34476031/

相关文章:

javascript - express body-parser 中间件将数据放入属性名称

objective-c - 在 Swift 协议(protocol)中使用 ObjC block

jenkins - 如何将Groovy变量用于Extended Choice Jenkins插件?

javascript - 如何始终在 IE 中打开新窗口并使用新 session

javascript - querySelectorAll() 返回的元素上的 .getAttribute() 方法

javascript - 根据到达地点更换页面内容 Angular 5

arrays - swift:平均连续正数

javascript - 将变量注入(inject)回调函数作用域

javascript - 将参数内存为键

javascript - 模态显示中的 Backbone.js 单击事件