Another way to do this could be to just use proto's .bind(), assuming the
"myRecursiveFunction" is only ever called as an instance method (vs. calling
it statically against the MyNS.Package's prototype)...

So:

SomeComplexDataStructure.DataPart.each( function(DataPart) {
*this.myRecursiveFunction(DataPart);* // or whatever the args should be
}.bind(this) );

On 5/27/08, Frederick Polgardy <[EMAIL PROTECTED]> wrote:
>
> I'll never refuse a free beer. ;-)
>
> On the example code, there are two other things to keep in mind:
>
> 1) Have to save away the value of arguments.callee before going into the
> inner function (arguments is always bound to the innermost function);
> 2) If you want to actually call the function recursively *as a method of
> this*, the above syntax won't work.  You'll need to do something like:
>
> MyNS.Package.prototype.myRecursiveFunction =
>   function(SomeComplexDataStructure) {
> *    var outer_fn = arguments.callee;
>     var outer_this = this;
> *
>     SomeComplexDataStructure.DataPart.each( function(DataPart) {
> *      outer_fn.call(outer_this, DataPart);* // or whatever the args
> should be
>     } );
>   }
>
> On Mon, May 26, 2008 at 2:48 PM, Jonathan Logue <[EMAIL PROTECTED]>
> wrote:
>
>>
>> Thanks so much! I kept reading about how the inner function had access
>> to the members of the outer function but could not find an example of
>> calling the actual function. You are a life saver.
>>
>> I'll buy you a beer if I am ever in Chicago!
>>
>> -Jonathan
>
>
> --
> Science answers questions; philosophy questions answers.
> >
>


-- 
Ryan Gahl
Manager, Senior Software Engineer
Nth Penguin, LLC
http://www.nthpenguin.com
--
WebWidgetry.com / MashupStudio.com
Future Home of the World's First Complete Web Platform
--
Inquire: 1-920-574-2218
Blog: http://www.someElement.com
LinkedIn Profile: http://www.linkedin.com/in/ryangahl

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" group.
To post to this group, send email to rubyonrails-spinoffs@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to