采取以下型号:
MyModel= Backbone.Model.extend({
defaults : {
myNestedModel:undefined,
},
initialize: function() {
this.set({myNestedModel: new MyNestedModel());
}
});
它有一个名为“myNestedModel”这有如下定义的一个属性:
MyNestedModel= Backbone.Model.extend({
defaults : {
myModel:undefined,
}
});
它也有一个单独的属性名称“基于myModel”。 现在,如果我创建为MyModel的一个实例:
AMODEL =新为MyModel();
嵌套模型将在为MyModel的initialize方法被设置。 然后我在两个步骤使用JSON.stringify:
// Use Backbone.js framework to get an object that we can use JSON.stringfy on
var modelAsJson = aModel.toJSON();
// Now actually do stringify
var modelAsJsonString = JSON.stringify(modelAsJson);
这工作得很好,我得到为MyModel的JSON表示,它的MyNestedModel的财产。 当我使用默认设置,例如出现该问题:
MyModel= Backbone.Model.extend({
defaults : {
new MyNestedModel(),
}
});
这会导致JSON.stringify一个问题,因为它不支持循环引用。 我假设正在创建循环引用,因为为MyModel的所有实例共享MyNestedModel的同一个实例。 而初始化方法会为每个实例的新嵌套模式。
问题:
- 是我的理解
defaults:{}
是问题正确的“事业”? - 从一个问题,我最近公布的我得到了我应该使用默认值,所有属性的印象。 如果是这样的话,我应该如何在这个岗位/问题提出的方案中使用默认值?
- 有人可以明确使用
defaults:{}
与问候,当值适用,当它覆盖到是否实例共享相同的默认“实例”?