2013-10-18 57 views
0

我的模型:主幹新的觀點反映了老款車型的數據

var ListModel = Backbone.Model.extend({ 
     defaults:{ 
      title: "", 
      items:new Array(), 
     }, 
     initialize: function(){ 
     } 
... 

,但由於某種原因,當我做:

function createNew(){ 
    var m = new ListModel(); 
    console.log(m); 
    [model items get modified somehow] 
} 
createNew() 

createNew() 

輸出爲model.items是兩個模型之間相同

這是爲什麼?

+1

避免使用的默認數組或對象,他們將得到按引用傳遞的,如果需要的話INITIALISE他們INITIALISE功能 –

回答

1

看來,我需要做的:

initialize: function(){ 
    this.set("items", new Array()); 
} 

,而不是做它在默認情況下

+1

或使用'defaults'函數:'defaults:function(){return {title:'',items:[]}}'。 'extend'參數中的所有內容都附加到模型的原型上,所有完全相同的'defaults'對象將被所有實例共享(並且被淺拷貝)。 –