我有一个定义了一些默认值的类,以及一个定义一些默认值的子类。但是当我创建子类的实例时,它只查看本地默认值,并且不会将其默认值与父类的默认值合并。有没有简单的方法可以在没有明确地将本地默认值与每个子类的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}
答案 0 :(得分:7)
你不能这样做。您必须在子类
之后执行此操作_.extend(ExtendedInventory.prototype.defaults, {rabbit: 25});
在模型定义之后加上它。