tengo el siguiente modelo:defecto cadena principal de referencia sobre el cambio de propiedad
var Soq = Backbone.model.extend({
default:{
'name': 'something'
, 'parents': [] //array will be passed by reference to attributes hash on new object instantiation
}
});
Soy nuevo en javascript y la columna vertebral pero mirando a la fuente Creo que lo que podría estar sucediendo es que cuando los atributos de este modelo consiguen el sistema de los valores predeterminados (backbone.js: 137) y el valor predeterminado es un objeto que se hace por referencia. Esto significa que cuando hago algo como esto:
var soq = new Soq;
var parents = soq.get('parents');
parents.push('parent'); //changes defaults of the proto object
var soq2 = new Soq;
console.log(soq2.get('parents');); //will output ['parent']
console.log(soq2.defaults.parents); //will output ['parent']
Estoy entendiendo esto correctamente, y si es así cuál es la mejor manera de establecer los valores por defecto que son objetos sin hacerlos sujetos a cambio en cualquier momento una instancia de futuro hace referencia a ellos ?
Avísame si me consta algo o no lo entiendo bien. Gracias de antemano por tu tiempo.
Ok, genial, gracias por su ayuda! – Mitya
Gracias, esto es genial. Estaba haciendo todo tipo de verificaciones molestas en la función 'initialize()' antes de ver esto. La solución parece obvia ahora :) – fiznool