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