javascript - Extending the defaults of a Model superclass in Backbone.js -


i pose question this answer can't seem so, apologize.

extending defaults subclass reflected in superclass. seems defeat purpose , i'm more apt explicitly list superclass' defaults in subclass structure i'm looking for.

var inventory = backbone.model.extend({     defaults: {         cat: 3,         dog: 5     } });  var extendedinventory = inventory.extend({ });  _.extend(extendedinventory.prototype.defaults, {rabbit: 25});  var = new inventory(); var ei = new extendedinventory(); console.log(i.attributes); console.log(ei.attributes); 

this outputs:

{cat: 3, dog: 5, rabbit: 25} {cat: 3, dog: 5, rabbit: 25} 

not (nor, assume, op) want:

{cat: 3, dog: 5} {cat: 3, dog: 5, rabbit: 25} 

the problem inventory.prototype.defaults , extended.prototype.defaults has same reference, because have not override reference.

so can in 2 ways, maybe more found 2:

edit: first example incorrect (see comments); please refer second.

var extendedinventory = inventory.extend({     defaults: {         rabit:25     } });  _.extend(extendedinventory.prototype.defaults, inventory.prototype.defaults); 

or

var extendedinventory = inventory.extend({     defaults: _.extend({},inventory.prototype.defaults,          {rabit:25}     ) }); 

i think first looks cleaner.


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -