将定义的函数作为参数传递

时间:2010-04-12 20:05:05

标签: javascript google-maps

我正在尝试将函数作为参数传递:

GEvent.addListener(marker_1, "click", populateMarkerWindow(0, marker_1) );

addListener函数将内联函数作为参数,并且它工作正常,但我也希望从其他地方调用此函数,因此我将其转换为已定义的函数:

var populateMarkerWindow = function(id, marker) {
  //...
}

然而,这只意味着当我尝试注册它时会调用我的函数。

有没有办法告诉JS我想传递函数本身,而不是调用函数的结果?

谢谢,

1 个答案:

答案 0 :(得分:9)

只需传递函数的名称即可。如果您需要安排使用一组特定参数调用函数,那么,有很多方法可以做到这一点,但最简单的方法是在另一个中包含对函数的调用功能

GEvent.addListener(marker_1, "click", function() {
  populateMarkerWindow(0, marker_1);
});

你可能想在YouTube上找到Douglas Crockford的各种讲座,以及他的网站(我认为是crockford.com)。除此之外还有约。那里有大量其他Javascript介绍。