参考here
的代码参考addListener(instance:Object, eventName:string, handler:Function)
功能。这里我们传入一个处理程序。因此,单击它时会调用toggleBounce
。
我也可以将其更改为var toggleFn = function toggleBounce() {....)
并传入toggleFn
我的问题是,我可以传入一个带参数的函数,例如,如果我希望处理程序是zoom(mapOptions.zoom -5)
或类似的函数。
我知道这本质上是'你如何将函数作为参数传递'的问题,但我不能让它用于不同的组合。
function initialize() {
var mapOptions = {zoom: 13, center: stockholm };
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
marker = new google.maps.Marker({map:map,position: parliament });
google.maps.event.addListener(marker, 'click', toggleBounce);
}
function toggleBounce() {
if (marker.getAnimation() != null) { marker.setAnimation(null);}
else {marker.setAnimation(google.maps.Animation.BOUNCE);}
}
答案 0 :(得分:3)
您可以传递匿名函数:
functionToPassTo(function(){ zoom(mapOptions.zoom -5) });
您也可以传递变量:
var options = "something";
functionToPassTo(function(){ zoom(options) });
唯一的另一种方法是将函数存储在变量中:
var options = "something",
func=function(){ zoom(options) });
functionToPassTo(func);