2010-06-04 59 views
0

我在創建自定義的jQuery插件讀了。我像下面的語法意義有點糊塗:有人可以解釋定義jQuery插件時語法的含義嗎?

(function($){ 
    $.fn.truncate = function() { 
     return this.each(function() { 
     }); 
    }; 
})(jQuery); 

據我所知,函數($)是接受$匿名函數。我只是不明白爲什麼這個函數被包裹在括號裏,以及下面這些括號中的jQuery如何工作。

+1

典型程序員回答:是的,有人可以。 – 2010-06-04 16:58:03

回答

3

這是不是安全的假設,$由jQuery庫所有。其他一些JavaScript庫/用戶可能/確實將該標識符用於其他目的。然而,jQuery始終是jQuery庫(禁止任何惡作劇者)。

這個匿名函數通過使它成爲匿名函數的本地參數,便捷地安全地公開$捷徑。由於參數將僅覆蓋函數範圍內的任何全局變量,因此不會影響其他任何用戶/庫代碼。

最後,在執行匿名功能的情況下,jQuery作爲第一個參數傳入以填充$

因此,當這些只是插件開發人員採取的一種捷徑,以便他們能夠安全可靠地使用$;如果你不介意在全球各地使用jQuery,那麼這是完全可選的。

4

周圍的圓括號創建一個匿名函數,$符號引用全局jQuery對象。

$.fn.truncate - 這意味着您將jQuery對象擴展爲包含一個名爲truncate的新函數。
使用$('#someElement').truncate();

5

與jQuery只是執行匿名函數和jQuery的傳遞爲$參數以下參數。這可以確保$ = jQuery只是在窗口中顯示。$不等於jQuery。

這裏是代碼,可能更有意義的重寫:

function myFunc($) { 
$.fn.truncate = function() { 
    return this.each(function() { 
}); 
} 

myFunc(jQuery); 
相關問題