[Javascript] Anonymous functions

Terry Riegel riegel at clearimageonline.com
Wed Dec 5 05:40:16 CST 2007


Hello again,

I just found this article and am reading it. It looks like it is  
exactly what I am needing to understand. I am posting here for anyone  
that might read this post and be looking for an answer.

http://www.howtocreate.co.uk/referencedvariables.html

Thanks,

Terry


On Dec 5, 2007, at 6:31 AM, Terry Riegel wrote:

> Hello,
>
> Thanks for the responses. I am still very confused. I have never been
> able to get my head around this type of thing. I must be missing
> something. How I would do something like the following, and in the
> process it may answer my first question. (also is there some
> recommended reading I could do on this subject?)
>
> suppose I have something like...
> //global context
> var a="Hello World";
> ...
>
>  //local context, not global
>  var a="Goodbye World";
>  var listener = GEvent.addListener(marker, "click", function()
> { alert(a); });
>  a="Last Known";
>
> When the event fires what will be in the alert. And how would I pass
> information from the local context to the alert?
>
>
> In case my contrived example doesn't make sense here is the actual
> code I am struggling with... I would like the alert to show the value
> of i in the local context it is instead showing the last value of i.
>
> for (var i in markers) {
>  var where = new GLatLng(markers[i].lat, markers[i].lng);
>  var opts = {title: markers[i].title};
>  var marker = new GMarker(where, opts);
>  map.addOverlay(marker);
>  var listener = GEvent.addListener(marker, "click", function()
> { alert(i); });
> }
>
>
>
> Thanks for any help with this.
>
> Terry Riegel
>
>
>
>
> On Dec 4, 2007, at 7:21 PM, Natalie Downe wrote:
>
>> Hello,
>>
>>>> I would like to take the first function() {...} and make it a named
>>>> function, but when I do it I get something like map undefined. How
>>>> do I un-anonymous-ize a function?
>>
>> Where is map being defined? if you do take it out of this add  
>> listener
>> call make sure you put it after where 'map' is specified, this could
>> be why you are getting 'map undefined errors. So your code would look
>> something like
>>
>>
>> // somewhere where map is defined
>>
>> // taking out your function into a named function
>> function myNamedFunction () {
>>  document.getElementById("mapinfo").innerHTML="Zoom:
>> "+map.getZoom()+" Bounds: "+map.getBounds();
>>  GDownloadUrl(url, function(data, status) {
>>      markers=eval(data);
>>      map.clearOverlays();
>>      for (var i in markers) {
>>          var where = new GLatLng(markers[i].lat, markers[i].lng);
>>          var opts = {title: markers[i].title};
>>          var marker = new GMarker(where, opts);
>>          map.addOverlay(marker);
>>      }
>>  });
>> }
>>
>> // add the listner
>> var listener = GEvent.addListener(map, "moveend", myNamedFunction);
>>
>> Kind regards
>> Natalie
>>
>> --
>> Natalie Downe
>> Senior Client-side Engineer - Clearleft <http://www.clearleft.com>
>>
>> <http://notes.natbat.net>
>> _______________________________________________
>> Javascript mailing list
>> Javascript at lists.evolt.org
>> http://lists.evolt.org/mailman/listinfo/javascript
>>
>
> _______________________________________________
> Javascript mailing list
> Javascript at lists.evolt.org
> http://lists.evolt.org/mailman/listinfo/javascript
>




More information about the Javascript mailing list