在Backbone.js中,扩展一个Model超类的默认值。

10 浏览
0 Comments

在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}

不是我(也不是我假设的提问者)想要的结果:

{cat: 3, dog: 5}
{cat: 3, dog: 5, rabbit: 25}

0