Posted on 2008-02-18 19:47
itspy 閱讀(4091)
評論(2) 編輯 收藏 所屬分類:
AJAX
jQuery官方文檔上推薦開發插件時要按下面格式來寫,我第一次看源代碼時看到這樣的寫法,被郁悶了好半天。
(function($) {
// Code goes here
})(jQuery);
下面將記錄為什么這樣寫,這樣寫具體有哪些好處。
其實上面這種方式等價于下面這種定義方式, 不過上面的方式更安全.與JAVA里面的隱藏類有點類似,這樣定義之后,很大程序上畢免了第三方的誤操作,從而破壞封裝性。
上面的代碼等價于下面的代碼,我想這樣寫大家都能看明白了吧。
var jQueryFucntion=function($) {
// Code goes here
//本文首發于
http://b.xfuse.cn
}
jQueryFucntion(jQuery);
(function($) {
// Code goes here
})
上面定義了一個jQuery函數,形參是$
(function($) {
// Code goes here
})(jQuery);
這個就是調用之前定義的函數,然后把jQuery這個實參傳遞進去.
這樣的好處是,我們在寫jQuery插件時,也可以使用$這個別名,而不會與prototype引起沖突.
如果不通過上面這種方式定義,而end-use又使用了prototype, 那么就會形成無法調和的矛盾了.