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

Gor*_*oro 1 javascript google-maps

我试图传递一个函数作为参数:

GEvent.addListener(marker_1, "click", populateMarkerWindow(0, marker_1) );
Run Code Online (Sandbox Code Playgroud)

addListener函数将内联函数作为参数,它工作正常,但我想从其他地方调用此函数,所以我把它变成了一个定义的函数:

var populateMarkerWindow = function(id, marker) {
  //...
}
Run Code Online (Sandbox Code Playgroud)

但是,这只意味着当我尝试注册它时会调用我的函数.

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

谢谢,

Poi*_*nty 9

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

GEvent.addListener(marker_1, "click", function() {
  populateMarkerWindow(0, marker_1);
});
Run Code Online (Sandbox Code Playgroud)

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

  • +1.事实上,这正是Google Maps API文档提供的建议:http://code.google.com/apis/maps/documentation/events.html#Event_Listeners (2认同)