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.

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.

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