9
いくつかのデフォルトを定義するクラスと、いくつかのデフォルトを定義するサブクラスがあります。しかし、サブクラスのインスタンスを作成すると、ローカルのデフォルトを調べ、そのデフォルトを親のものとマージしません。すべてのサブクラスのinitialize
関数のローカル既定値と親既定値を明示的にマージすることなくこれを行う簡単な方法はありますか?Backbone.jsで、スーパークラスのデフォルトがサブクラスのデフォルトとして機能するようにするにはどうすればよいですか?
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}
sameは、viewsイベント属性に適用されます。 – Julien
この回答がインベントリをどのように変更するかについては、[this](http://stackoverflow.com/questions/6549149/extending-the-defaults-of-a-model-superclass-in-backbone-js)の質問をご覧ください。 prototype.defaultsとExtendedInventory.prototype.defaultsは同じオブジェクト参照であるため、 – c3rin
あなたは正しいキャッチです。 – Julien