I found the concept of closures confusing after reading articles that I discovered with google. However you should be able to recognise that your var keyword variables inside your init method are vars of that method.. they do not exist within the window object (window being the top most level).
On Apr 18, 7:50 pm, Kenneth <[EMAIL PROTECTED]> wrote: > I just read the Wikipedia article on closures[1] today and learned quite a > bit myself (which isn't saying much!). I would recommend it to anyone > wanting to learn more about it. To quote a portion: > > "[...] a closure is a semantic concept referring to a function paired with > an environment [...] Typically, a closure occurs when one function appears > entirely within the body of another, and the inner function refers to local > variables of the outer function. At runtime, when the outer function > executes, a closure is formed, consisting of the inner function's code and > references to any variables of the outer function required by the closure > [...] " > > [1]http://en.wikipedia.org/wiki/Closure_%28computer_science%29 > > On 4/18/07, Rob Desbois <[EMAIL PROTECTED]> wrote: > > > > > 17By creating a function form your code which uses variables outside its > > scope, you've created a 'closure'. > > > When settings.functionToCallLater() is called after init() has finished, > > aVariable has gone out of scope. The function still has access to it > > however, because the closure consists of two parts: the code of the function > > itself, and a reference to all variables outside its scope that it needs > > access to. > > > Have a search on Google for 'javascript closures', there are plenty of > > good articles that can explain this more fully than me. > > > HTH, > > rob > > > On 4/18/07, Ariel Jakobovits <[EMAIL PROTECTED]> wrote: > > > > this isn't the real code, just a mockup, but ... > > > > can someone explain to me why this works (as in, alert echoes 'ariel'): > > > > var temp = null; > > > > function init () > > > { > > > > var aVariable = 'ariel'; > > > > var settings = { > > > functionToCallLater: function (content) { > > > alert(aVariable); > > > } > > > }; > > > > temp = new anotherClass(settings); > > > } > > > > anotherClass.callThatFunction (); > > > -- > > Rob Desbois > > Eml: [EMAIL PROTECTED] > > Tel: 01452 760631 > > Mob: 07946 705987 > > "There's a whale there's a whale there's a whale fish" he cried, and the > > whale was in full view. > > ...Then ooh welcome. Ahhh. Ooh mug welcome.