9

我有一个定义一些默认值的类,以及一个定义一些默认值的子类。但是当我创建子类的实例时,它只查看本地默认值,而不会将其默认值与父类的默认值合并。是否有任何简单的方法可以做到这一点,而无需在initialize每个子类的函数中显式地将本地默认值与父默认值合并?

var Inventory = Backbone.Model.extend({
    defaults: {
        cat: 3,
        dog: 5
    }
});

var ExtendedInventory = Inventory.extend({
    defaults: {
        rabbit: 25
    }
});

var ei = new ExtendedInventory({});
console.log(ei.attributes);

这输出:

{rabbit: 25}

不是我想要的:

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

1 回答 1

7

你不能那样做。你必须在子类之后做

_.extend(ExtendedInventory.prototype.defaults, {rabbit: 25});

把它放在你的模型定义之后。

于 2011-06-28T14:59:30.287 回答