(function($){
$.fn.plugin = function(){
//...
}
})(jQuery);
初学者看到这种句式几乎都会眼花。下面简单说明一下这是怎么演化来的:
首先我们都熟悉的:
function(){}
上面是定义一个方法。然后:
(function(){})();
这表示定义了一个方法之后马上执行它。在 JavaScript 当中,$ 可以作为一个变量名,所以括号中的 function 可以加上一个参数 $:
(function($){})(jQuery);
后面的 jQuery 表示在调用这个方法时传入的参数。稍微排一下版就是下面的样子:
(function($){
// ...
})(jQuery);
这下你该知道开头的句式是怎么来的了吧。这样做有什么好处呢?因为 $ 是一个被 JavaScript 群众广泛接受的变量,很多 JavaScript 库都喜欢用这个。为了避免同其他定义的 $ 搞混淆,这里将 $ 定义为一个局部参数,既屏蔽了外部干扰,又限制了它的作用域,那么这个方法里面就可以放心的用 $ 了。