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