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'); */