【问题标题】:Parameters in bracket after a javascript functionjavascript函数后括号中的参数
【发布时间】:2019-02-16 02:35:39
【问题描述】:

我在堆栈溢出上找到了谷歌地图标记的解决方案。 链接在这里。 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)); 

我的问题是:将 (marker,content,infowindow) 放在 javascript 函数后面的目的是什么?它叫什么? 非常感谢您。

【问题讨论】:

    标签: javascript


    【解决方案1】:

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

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

    查看文档here

    【讨论】:

    • 非常感谢您抽出宝贵时间。非常感谢
    【解决方案2】:

    这是一个自调用函数 - 这意味着在声明之后立即使用这些参数调用它

    【讨论】:

    • 非常感谢您回答我的问题。
    【解决方案3】:

    官方名称请看 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); 
    

    【讨论】:

    • 感谢您的详细解释。对像我这样的初学者很有帮助 =)
    猜你喜欢
    • 2011-05-08
    • 2015-09-05
    • 1970-01-01
    • 2016-10-09
    • 2018-01-25
    • 2020-09-12
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    相关资源
    最近更新 更多