Tengo una clase que define algunos valores predeterminados y una subclase que define algunos valores predeterminados. Pero cuando creo una instancia de la subclase, solo mira los valores predeterminados locales y no combina sus valores predeterminados con los del padre. ¿Hay alguna manera simple de hacer esto sin combinar explícitamente los valores predeterminados locales con los valores predeterminados principales en la función initialize
de cada subclase?En Backbone.js, ¿cómo puedo obtener los valores predeterminados de las superclases modelo para que actúen como valores predeterminados para las subclases?
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);
Este salidas:
{rabbit: 25}
No es lo que quieren:
{cat: 3, dog: 5, rabbit: 25}
Lo mismo se aplica a los atributos de eventos de vistas. – Julien
Consulte [este] (http://stackoverflow.com/questions/6549149/extendiendo-el-defaults-de-un-modelo-superclass-in-backbone-js) pregunta para una discusión sobre cómo esta respuesta cambia el Inventario. prototype.defaults así como ExtendedInventory.prototype.defaults porque son la misma referencia de objeto. – c3rin
Estás en lo cierto, buena captura. – Julien