JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>
JavaScript
// http://forrst.com/posts/Backbone_js_super_function-4co
Backbone.Model.prototype._super = function(method){
return this.constructor.__super__[method].apply(this, _.rest(arguments));
}
var animal = Backbone.Model.extend({
defaults : {
id: 'one',
name: 'animal'
},
sound: function() { return '(incoherent grunting)'; },
talk: function() { alert(this.get('value')); }
});
var yeti = animal.extend({});
/* (new yeti).talk(); */
var cat = animal.extend({
defaults : _.extend({},animal.prototype.defaults,
{value:'Cat'}),
sound: function() {
return 'meow';
}
});
var dog = animal.extend({
defeaults : {
value: 'Dog'
},
sound: function() {
return 'woof';
}
});
/* (new cat).talk();
(new dog).talk(); */
console.log((new cat({id:'1', name:'test', value:'test-one'})).toJSON());
// still woofs!
/* (new dog)._super('talk'); */