10
我有以下型號:骨幹默認的屬性更改被引用
var Soq = Backbone.model.extend({
default:{
'name': 'something'
, 'parents': [] //array will be passed by reference to attributes hash on new object instantiation
}
});
我是新來的JavaScript和骨幹,但看着我認爲可能發生的源頭是,當這個模型的屬性得到設爲默認值(backbone.js:137),默認值是通過引用完成的對象。這意味着,當我做這樣的事情:
var soq = new Soq;
var parents = soq.get('parents');
parents.push('parent'); //changes defaults of the proto object
var soq2 = new Soq;
console.log(soq2.get('parents');); //will output ['parent']
console.log(soq2.defaults.parents); //will output ['parent']
我是否正確地理解這一點,如果是的話是什麼來設置的對象的默認值,而沒有讓他們隨時更改,隨時未來實例引用它們的最好方法?
讓我知道如果我不清楚或誤解的東西。在此先感謝您的時間。
好的,非常感謝您的幫助! – Mitya
謝謝,這太棒了。在我看到這個之前,我在'initialize()'函數中做了各種惱人的檢查。解決方案似乎很明顯:) – fiznool