2012-11-06 37 views
2

從我所知道的,在當前的項目中,開發人員使用jQuery擴展來處理命名空間。這有多糟糕?如何使用jQuery擴展名稱空間?

var my = $.extend({}, { 
    itemone: 0 
} 

$.extend(my, { 
    init: function() {} 
} 

$(function() { 
    my.init(); 
})(); 
+0

我不明白上面的代碼的目的。在最初的'var my'聲明中,您使用extend將對象推入空對象,但您正在定義要推入其中的對象...爲什麼要麻煩? 'var my = {itemone:0}'..如果你想用另一個對象的屬性來操縱一個對象的屬性,那就是擴展的意思,否則我看不出有什麼理由去打擾這個。 'var my = {itemone:0}'...稍後...'my.init = function(){}'....不需要擴展 – Ohgodwhy

回答

3

在你發佈你並不真的需要使用$.extend,但在一般情況下,我不會使用jQuery $.extend幫助命名空間說的簡單示例代碼爲「壞」。有關JavaScript命名空間模式,請參閱this post。根據作者的說法,使用「擴展」或「深度對象擴展」被認爲是高級命名空間擴展技術。使用jQuery的$.extend使技術相當容易,但可能會增加一定的開銷。

我從來沒有以這種方式使用它,但在一些複雜/深層命名空間的大應用程序中,使用$.extend可能會有所幫助。雖然我不會加載jquery庫來使用它的擴展方法。

相關問題