I bet if you asked on the jQuery development board, you'd get a good
answer. The people reading that one are more likely to understand the
internals.

On Feb 23, 4:59 am, Nazgulled <[EMAIL PROTECTED]> wrote:
> Ok, thanks for all your help...
>
> If anyone else can provide any more insight on the differences between
> those 2 pieces of code...
>
> On Feb 23, 2:05 am, timothytoe <[EMAIL PROTECTED]> wrote:
>
> > I don't know if there's any practical difference. Maybe someone more
> > knowledgeable can chime it. Perhaps the former ends up being a savings
> > in file size if you have a lot of functions.
>
> > On Feb 22, 5:44 pm, Nazgulled <[EMAIL PROTECTED]> wrote:
>
> > > I see, but...
>
> > > How is this:
>
> > > (function($) {
> > >         $.something = function() { alert('something'); }
> > >         $.test = {
> > >                 abc: function() { alert('test'); }
> > >         }
>
> > > })(jQuery);
>
> > > Different from this:
>
> > > jQuery.something = function() { alert('something'); }
> > > jQuery.test = {
> > >         abc: function() { alert('test'); }
>
> > > }
>
> > > Besides the syntax used of course. I mean, you simply do $.something()
> > > or $.test.abc() and it will work no matter if you coded in the first
> > > way or second...
>
> > > timothytoe wrote:
> > > > Any time you create a function without a name it's anonymous. Example:
>
> > > > window.setTimeout(function() { alert('Hello world!') }, 60);
>
> > > > On Feb 22, 4:56 pm, Nazgulled <[EMAIL PROTECTED]> wrote:
> > > > > timothytoe wrote:
> > > > > > The function doesn't have a name, so it doesn't pollute the 
> > > > > > namespace,
> > > > > > and it's great for making functions inline for handlers and
> > > > > > setTimeout() without the burden of having to make up a name that 
> > > > > > won't
> > > > > > even be referenced.
>
> > > > > Can you give me an example of what you mean? I'm getting a bit
> > > > > confused...
>
> > > > > > It's an outgrowth of everything being an object in JavaScript, and
> > > > > > being able to pass any object as a parameter. A function is an 
> > > > > > object
> > > > > > in JavaScript and can be passed as a parameter.
>
> > > > > Yes, I knew that, I just don't see how it relates to anonymous
> > > > > functions.
>
> > > > > > It's very powerful.
>
> > > > > > On Feb 22, 4:39 pm, Nazgulled <[EMAIL PROTECTED]> wrote:
> > > > > > > And what exactly it means to hide a function, making it anonymous?
>
> > > > > > > timothytoe wrote:
> > > > > > > > JavaScript has really expressive ways to call functions. The 
> > > > > > > > first
> > > > > > > > parentheses hide the function (make it anonymous) and the second
> > > > > > > > executes the code immediately with the parameter listed. I'm a 
> > > > > > > > newbie
> > > > > > > > myself, but I think that means "right now, pass the variable 
> > > > > > > > jQuery in
> > > > > > > > as $ to the function and execute the code."
>
> > > > > > > > On Feb 22, 4:06 pm, Nazgulled <[EMAIL PROTECTED]> wrote:
> > > > > > > > > Thanks...
>
> > > > > > > > > And what's up with the:
>
> > > > > > > > > (function($) {
> > > > > > > > >   // CODE
>
> > > > > > > > > })(jQuery);
>
> > > > > > > > > This was the thing that got me most confused when reading the
> > > > > > > > > documentation. Can someone explain me this, what it does, 
> > > > > > > > > what is for
> > > > > > > > > and the best scenarios where would I need to use something 
> > > > > > > > > like this?
> > > > > > > > > If possible, explain me like I was really dumb :P
>
> > > > > > > > > Klaus Hartl wrote:
> > > > > > > > > > On Feb 23, 12:14�am, Nazgulled <[EMAIL PROTECTED]> wrote:
> > > > > > > > > > > Hi,
> > > > > > > > > > > Let's say I have 2 different javascript files. I like to 
> > > > > > > > > > > organize my
> > > > > > > > > > > code that's why I use 2 different files so each file will 
> > > > > > > > > > > only have
> > > > > > > > > > > functions that fall into that file's category.
>
> > > > > > > > > > > Anyway, here's the files layout...
>
> > > > > > > > > > > file1.js:
> > > > > > > > > > > function Fn1() { ... }
> > > > > > > > > > > function Fn2(a, b) { ...}
>
> > > > > > > > > > > file2.js
> > > > > > > > > > > function FnX(a, b, c) { ... }
> > > > > > > > > > > function FnY(a, b) { ... }
> > > > > > > > > > > function FnZ(a) { ... }
>
> > > > > > > > > > > How can I call those functions in a syntax like this:
> > > > > > > > > > > $.groupName.Fn1();
> > > > > > > > > > > $.groupName.Fn2('text', 123);
>
> > > > > > > > > > > or
>
> > > > > > > > > > > jQuery.groupName.FnZ(true);
>
> > > > > > > > > > > How do I do this?
>
> > > > > > > > > > > P.S: I've read the plugins authoring documentation page 
> > > > > > > > > > > but I'm still
> > > > > > > > > > > confused and I don't know how to achieve this, please 
> > > > > > > > > > > advise...
>
> > > > > > > > > > Something like:
>
> > > > > > > > > > $.groupName = $.groupName || {};
> > > > > > > > > > $.extend($.groupName, {
> > > > > > > > > >     Fn1: function() {
> > > > > > > > > >         ...
> > > > > > > > > >     },
> > > > > > > > > >     Fn2: function(a, b) {
> > > > > > > > > >         ...
> > > > > > > > > >     }
> > > > > > > > > > });
>
> > > > > > > > > > --Klaus

Reply via email to