jquery官方推荐的插件写法(function($) {})(jQuery);
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, 那么就会形成无法调和的矛盾了.