JavaScript函数后括号中的参数

时间:2018-09-11 14:39:02

标签: javascript

我在堆栈溢出时找到了针对Google Maps标记的解决方案。 链接在这里。 Google Maps API Multiple Markers with Infowindows

google.maps.event.addListener(marker,'click', (function(marker,content,infowindow){ 
return function() {
    infowindow.setContent(content);
    infowindow.open(map,marker);
};
})(marker,content,infowindow)); 

我的问题是:(标记,内容,信息窗口)放在javascript函数后面的目的是什么?那叫什么呢? 非常感谢您。

3 个答案:

答案 0 :(得分:1)

这是一个自调用函数-表示在声明后立即使用这些参数立即调用

答案 1 :(得分:1)

这是一个IIFE(立即调用函数表达式),第二个括号调用了该函数,并允许您将参数传递给该函数

(function () {
    //statements
})();

检查文档here

答案 2 :(得分:1)

请参阅达米安(Damian)的官方名称答案。

但是,这只是执行通过执行第一个功能而创建的功能。

如果将代码分成多行,则可能更有意义:

const makeAFuction = function(marker,content,infowindow){ 
  return function() {
    infowindow.setContent(content);
    infowindow.open(map,marker);
  };
}
const listener = makeAFunction(marker,content,infowindow);
google.maps.event.addListener(marker,'click', listener);