これをこの回答に対する質問として提起したいのですが、そうすることができないようです。申し訳ありません。
サブクラスのデフォルトを拡張すると、スーパークラスに反映されます。これは目的に反しているようで、探している構造を取得するために、サブクラスにスーパークラスのデフォルトを明示的にリストする傾向があります。
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}