Hi, There are a couple of problems there, not least that I don't see anywhere that a's `to_execute` property is set, so as far as I can see b would get an undefined value. Did you mean `do_something`?
But I suspect that's a copy-and-paste error. The basic problem is that you're passing a function without any context. Functions are just functions, the `this` value does not follow them around as it (seems to) in some other languages. In JavaScript, `this` is set purely by how you *call* a function. There are several ways to deal with that, including Prototype's Function#bind[1]. I wrote up a full description of this issue[2] in my blog a while back. [1] http://api.prototypejs.org/language/function.html#bind-instance_method [2] http://blog.niftysnippets.org/2008/03/mythical-methods.html HTH, -- T.J. Crowder Independent Software Consultant tj / crowder software / com www.crowdersoftware.com On Nov 14, 8:06 am, patrick <patrick99...@gmail.com> wrote: > Can anyone explain this to me? It appears to be a scope issue where > my_a no longer is set to the instantiated class 'a' once it gets > executed in class 'b's initialize method... How is the best way to > get around this? > > thanks. > > -patrick > > document.observe("dom:loaded", function() { > var test = new a; > > }); > > var a = (function() { > > var a = Class.create({ > > initialize: function() { > new b(this.to_execute) > }, > > do_something: function() { > console.log('it has been done!'); > }, > > future_func: function() { > var my_a = this; > my_a.do_something(); > } > }); > > return a; > > })(); > > var b = (function() { > > var b = Class.create({ > > initialize: function(func) { > func(); > } > }); > > return b; > > > > })(); --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" group. To post to this group, send email to prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~----------~----~----~----~------~----~------~--~---