(function($)){...}(jQuery) 作用:定义了一个匿名函数,并让其立即执行。以下先从js的匿名函数说起。
1、何为匿名函数?
js中定义函数方式有三:
(1)函数关键字 function fun(x) { alert(x); }
(2)函数字面量 var fun = function(x){ alert(x); }
(3)构造函数 var fun = new Function('x', 'alert(x);')
以上三种定义了同一个函数fun,(1)最为常用,(2)和(3)把一个函数赋值给变量,这个函数本身没有名字,匿名函数由此得名。
2、jQuery中(function($)){...}(jQuery)由来
2.1 首先,我们来定义并执行一个匿名函数:
var fun = function(x){ alert(x) };
fun(a);
2.2 然后,将第二句中的fun替换为匿名函数定义:
(function(x){ alert(x) })(b);
这个结构就表明,我定义并立即执行了该匿名函数。
2.3 之后,将x替换为$,,将b替换为jQuery,就ok啦:
(function($){ alert($) })(jQuery);
jquery内部的$ 和 jQuery 可以理解为一个函数的形参和实参,至于为什么做这样的替换,其主要作用是为了保证jQuery不与其他类库或变量发生冲突。
ps:理解有误的地方还请大家积极指正,ths! n_n