我在創建自定義的jQuery插件讀了。我像下面的語法意義有點糊塗:有人可以解釋定義jQuery插件時語法的含義嗎?
(function($){
$.fn.truncate = function() {
return this.each(function() {
});
};
})(jQuery);
據我所知,函數($)是接受$匿名函數。我只是不明白爲什麼這個函數被包裹在括號裏,以及下面這些括號中的jQuery如何工作。
我在創建自定義的jQuery插件讀了。我像下面的語法意義有點糊塗:有人可以解釋定義jQuery插件時語法的含義嗎?
(function($){
$.fn.truncate = function() {
return this.each(function() {
});
};
})(jQuery);
據我所知,函數($)是接受$匿名函數。我只是不明白爲什麼這個函數被包裹在括號裏,以及下面這些括號中的jQuery如何工作。
這是不是安全的假設,$
由jQuery庫所有。其他一些JavaScript庫/用戶可能/確實將該標識符用於其他目的。然而,jQuery
始終是jQuery庫(禁止任何惡作劇者)。
這個匿名函數通過使它成爲匿名函數的本地參數,便捷地安全地公開$
捷徑。由於參數將僅覆蓋函數範圍內的任何全局變量,因此不會影響其他任何用戶/庫代碼。
最後,在執行匿名功能的情況下,jQuery
作爲第一個參數傳入以填充$
。
因此,當這些只是插件開發人員採取的一種捷徑,以便他們能夠安全可靠地使用$
;如果你不介意在全球各地使用jQuery
,那麼這是完全可選的。
周圍的圓括號創建一個匿名函數,$
符號引用全局jQuery
對象。
$.fn.truncate
- 這意味着您將jQuery
對象擴展爲包含一個名爲truncate
的新函數。
使用$('#someElement').truncate();
與jQuery只是執行匿名函數和jQuery的傳遞爲$參數以下參數。這可以確保$ = jQuery只是在窗口中顯示。$不等於jQuery。
這裏是代碼,可能更有意義的重寫:
function myFunc($) {
$.fn.truncate = function() {
return this.each(function() {
});
}
myFunc(jQuery);
典型程序員回答:是的,有人可以。 – 2010-06-04 16:58:03