Bazı varsayılanları tanımlayan bir sınıfa ve bazı varsayılanları tanımlayan bir alt sınıfa sahibim. Fakat alt sınıfın bir örneğini oluşturduğumda sadece yerel varsayılanlara bakar ve varsayılanlarını ebeveyninkilerle birleştirmez. Yerel alt varsayılanları, her alt sınıfın initialize
işlevinde ana varsayılanlarla açıkça birleştirmeden bunu yapmak için herhangi bir basit yol var mı?Backbone.js'de alt sınıflar için varsayılan değerler olarak davranabilmek için Model süper sınıfı varsayılanlarını nasıl alabilirim?
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);
Bu çıkışlar:
{rabbit: 25}
Ben istediğini değil:
{cat: 3, dog: 5, rabbit: 25}
Aynı görünüm olayları özniteliklerine uygulanır. – Julien
Bu cevabın Envanter'i nasıl değiştirdiğiyle ilgili bir tartışma için lütfen [this] (http://stackoverflow.com/questions/6549149/extending-the-defaults-of-a-model-superclass-in-backbone-js) adresine bakınız. prototype.defaults yanı sıra ExtendedInventory.prototype.defaults aynı nesne referansı oldukları için. – c3rin
Haklısınız. – Julien