This article transferred from: http://blog.csdn.net/rambo_china/article/details/7742321
Recently in the work see this call definition method, and also call the way, feel very puzzled, see this blog after the enlightened
This is actually an anonymous function.
Function (ARG) {...}
This defines an anonymous function with a parameter of ARG
When calling a function, the parentheses and arguments are written after the function, and because of the precedence of the operator, the function itself needs parentheses, namely:
(function (ARG) {...}) (param)
This is equivalent to defining an anonymous function with a parameter of ARG, and calling this anonymous function as a parameter param
and (function ($) {...}) (jquery) is the same, the reason why only use $ in formal parameters is to not conflict with other libraries, so the argument with JQuery
**************************************************************************
is actually equal to
var fn = function ($) {...};
FN (jQuery);
You can actually understand that, but be aware that FN doesn't exist.
That function is defined directly and then runs. "Compression" looks like this.
(function ($) {...}) (JQuery)
**************************************************************************
Simple to understand is (function ($) {...}) (jQuery) defines a number of functions that need to be pre-defined
$ (function () {}) is used to run \ Execute those preprint-defined functions after the DOM loading is complete.
**************************************************************************
Share some of the lessons learned when developing jquery plugins.
First, look at
JQuery (function () {
});
All written as
JQuery (document). Ready (function () {
});
The meaning is that the ready () method is executed after the DOM has been loaded.
Second, look again
(function () {
}) (JQuery);
It is actually an anonymous method of executing () (para), except that the jquery object is passed.
Iii. Summary
JQuery (function () {}), which holds the code for manipulating the DOM object, and the DOM object already exists when the code executes it. cannot be used to store code that develops plug-ins, because jquery objects are not passed, and external methods (functions) cannot be called by Jquery.method.
(function () {}) (JQuery), which is used to store the code that develops the plug-in, and the DOM does not necessarily exist when executing the code, so be careful with the code that automatically executes DOM operations directly.
(function ($) {...}) What do you mean by (jQuery)?