我想將此作爲一個問題提出來this答案,但我似乎無法這樣做,我很抱歉。在Backbone.js中擴展Model超類的默認設置
擴展子類的默認值反映在超類中。這似乎破壞了目的,我更傾向於在子類中明確列出超類的默認值,以獲得我正在尋找的結構。
var Inventory = Backbone.Model.extend({
defaults: {
cat: 3,
dog: 5
}
});
var ExtendedInventory = Inventory.extend({
});
_.extend(ExtendedInventory.prototype.defaults, {rabbit: 25});
var i = new Inventory();
var ei = new ExtendedInventory();
console.log(i.attributes);
console.log(ei.attributes);
此輸出:
{cat: 3, dog: 5, rabbit: 25}
{cat: 3, dog: 5, rabbit: 25}
不是我(也不是,我認爲,在op)想:
{cat: 3, dog: 5}
{cat: 3, dog: 5, rabbit: 25}
謝謝,@JCorcuera。我應該更仔細地研究_.extend()來解決這個問題。但是,這個解決方案的一個問題是,如果我將ExtendedInventory的默認值更改爲'{dog:15,rabbit:25}''''''''''''''的ExtendedInventory值被覆蓋回到'5'。我想我會在ExtendedInventory的'initialize'方法中返回'for(for this.iDefaults){this.attributes [a] = this.eiDefaults [a];}'。 – mcdoh
@mcdoh毫米你是對的,但第二個工作正常。 – JCorcuera
你是對的,所以看起來你的第二個解決方案就是解決這個問題的方法。謝謝你的幫助! – mcdoh