Ah... thanks guys... I totally missed that.. nice trick! On Fri, Oct 3, 2008 at 11:04 AM, nutron <[EMAIL PROTECTED]> wrote:
> If you look at the last line of the function, it returns arguments.callee. > This is a pointer to the anonymous function. So the first call (with Array), > calls the anonymous function. It then returns itself and so the second call > does the same. > > > On Fri, Oct 3, 2008 at 8:01 AM, Nathan White < > [EMAIL > PROTECTED]<http://n2.nabble.com/user/SendEmail.jtp?type=node&node=1142175&i=0> > > wrote: > >> I feel comfortable with the internals of mootools for the most part and >> love reading the code. However in 1.2.0 there is a bit of code that >> perplexes me. I donno if I'm missing something or what. I figured I would >> ask for some help or clarification. I will note that in the nightly builds >> this code has been completely replaced with something that seems a bit more >> robust. >> >> In the Core.js file line 103-108 >> >> (function(object, methods){ >> for (var i = methods.length; i--; i) Native.genericize(object, >> methods[i], true); >> return arguments.callee; >> }) >> (Array, ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', >> 'concat', 'join', 'slice', 'toString', 'valueOf', 'indexOf', 'lastIndexOf']) >> (String, ['charAt', 'charCodeAt', 'concat', 'indexOf', 'lastIndexOf', >> 'match', 'replace', 'search', 'slice', 'split', 'substr', 'substring', >> 'toLowerCase', 'toUpperCase', 'valueOf']); >> >> >> I understand and recognize the anonymous function syntax (function(){})() >> but what I don't get is how the it appears the params are passed twice to >> the same anonymous function. The (Array...) followed by the (String...); >> doesn't makes sense to me. If I take this snippet of code out by itself >> modifying the internal function for generic debugging info it breaks. It >> handles the Array () fine but it gets to the String () and breaks. >> >> I looked above in the code to see if I was missing some other closure but >> I didn't see anything. >> >> Can anyone shed any light on this, and why it works? >> >> > The MooTools Tutorial: www.mootorial.com CNET Clientside: > clientside.cnet.com > > ------------------------------ > View this message in context: Re: confused with > core.js<http://n2.nabble.com/confused-with-core.js-tp1142162p1142175.html> > Sent from the MooTools Users mailing list > archive<http://n2.nabble.com/MooTools-Users-f660466.html>at Nabble.com. >
