2011-08-04 65 views
1

如果我有兩個類,#1是#2和#1的混合聲明屬性(使用默認值 - 例如:[]來聲明一個新的空數組) - 爲什麼它發生#2類的所有實例共享SAME數組實例?dojo mixin「global」context

我是否必須在構造函數中初始化我的屬性?

故障代碼如下所示:

dojo.declare("C1", 
     [dojo.Stateful], 
     { 
      _watches:[], 
      constructor:function(){ 
       this._watches.push("test"); 
      } 
      ... 
     } 
); 


dojo.declare("C2", 
    [dijit.MenuBarItem,C1], 
    { 
     constructor:function(){ 
      console.debug(this._watches.length); 
     } 
    } 
); 

new C2(); 
new C2(); 
new C2(); 
new C2(); 

問候

回答