2010-08-17 140 views
1

這兩種類型的命名空間聲明有什麼區別?第一個比第二個更好,反之亦然?JavaScript命名空間聲明差異

(function($) 
{ 
    $.build = { 
     init: function() 
     { 
      this.attachEvents(); 
     } 
    } 
} 

$(document).ready(function() { 
     $.build.init(); 
    }); 
})(jQuery); 

var build = { 
    init: function(){ 
     this.attachEvents(); 
    } 
}; 

$(document).ready(function() { 
     build.init(); 
}); 

回答

3

主要有兩種實用的差異。第一個不創建額外的可從外部訪問的變量,並且不依賴$jQuery以外的函數。第二個創建一個build變量,並要求$表示jQuery

2

兩者都很好,但第一個可能更好,因爲它允許jQuery與其他庫一起玩。它不會與聲明爲$的任何其他變量發生衝突。