Передача функций в JavaScript - PullRequest
1 голос
/ 06 марта 2011

со ссылкой на код из здесь

со ссылкой на функцию 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);}
}

1 Ответ

3 голосов
/ 06 марта 2011

Вы можете передать анонимную функцию:

functionToPassTo(function(){ zoom(mapOptions.zoom -5) });

Вы также можете передать переменные:

var options = "something";
functionToPassTo(function(){ zoom(options) });

Единственный другой способ - сохранить функцию в переменной:

var options = "something",
func=function(){ zoom(options) });
functionToPassTo(func);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...