jQuery官方文档上推荐开发插件时要按下面格式来写,我第一次看源代码时看到这样的写法,被郁闷了好半天。
(function($) { // Code goes here})(jQuery);下面将记录为什么这样写,这样写具体有哪些好处。 其实上面这种方式等价于下面这种定义方式, 不过上面的方式更安全.与JAVA里面的隐藏类有点类似,这样定义之后,很大程序上毕免了第三方的误操作,从而破坏封装性。 上面的代码等价于下面的代码,我想这样写大家都能看明白了吧。var jQueryFucntion=function($) { // Code goes here//} jQueryFucntion(jQuery); (function($) { // Code goes here})上面定义了一个jQuery函数,形参是$ (function($) { // Code goes here})(jQuery);这个就是调用之前定义的函数,然后把jQuery这个实参传递进去. 这样的好处是,我们在写jQuery插件时,也可以使用$这个别名,而不会与prototype引起冲突. 如果不通过上面这种方式定义,而end-use又使用了prototype, 那么就会形成无法调和的矛盾了.