Wasn't it d...@mausner who wrote:
>
>Mappers, every published code sample uses a closure as the
>GEvent.addListener callback. There seem to be multiple ways.  Do they
>have different side effects?
>
>1. addListener(x, y, function (z) { code });
>2. function A(z) {code};  addListener(x, y, A);
>3. function A(z) {code};  addListener(x, y, function (z) { A(z) });

On their own, those do the same thing, but in some contexts they are
different consider:

1. function createMarker(point) {
     var marker = new GMarker(point);
     GEvent.addListener(marker, y, function (z) { code });
   }

2. function A(z) {code}
   function createMarker(point) {
     var marker = new GMarker(point);
     GEvent.addListener(marker, y, A);
   }

3. function A(z,marker) {code}
   function createMarker(point) {
     var marker = new GMarker(point);
     GEvent.addListener(marker, y, function (z) { A(z,marker) });
   }

In case #1, the {code} has direct access to all variables that are held
in the function closure of the createMarker() function, that's local
variables like "marker" and passed arguments like "point".

In case #2, the {code} has no access to the variables in the
createMarker() closure. So it can't do things like
marker.openInfoWindow().

In case #3, the anonymous function has access to the variables held in
the closure, so it can pass them to the A() function in that function
call.


When you're dealing with marker "click" events, you probably do want to
know which marker was clicked, and that information is usually inside
the function closure, so you'd need to use #1 or #3.

When you're dealing with map "zoomend" events, and only have one map on
your page, you probably don't need any variables to be passed via
closure. You can get all the required info either from the arguments
returned from the event or by making calls like map.getZoom(). So any of
those ways would work.

-- 
Mike Williams
http://econym.org.uk/gmap



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Maps API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Maps-API?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to