views:

65

answers:

1

For the function (function($){})(), I've seen it with the word jQuery in it, why is that?

I have read this page http://stackoverflow.com/questions/1925291/javascript-why-does-jquery-do-this-function-and-how-does-it-work but it didnt tell about an example like this:

(function($){})(jQuery);

What does that jquery in the parenthesis do? If the parenthesis by itself already self calls the function then why do we need that jQuery in there?

+4  A: 

Is a simple function invocation, the jQuery object is sent as an argument to the anonymous function, e.g.:

(function (foo) {
  alert(foo); // alerts "hello"
})("hello");

It's a common pattern to define plugins, basically permits you to reference the jQuery object as $ in the scope of the anonymous function, even if jQuery is running in noConflict mode.

CMS
This is indeed useful if you use mixed libraries, such as prototype.js, which also defines the $ variable
Chubas