underscore-inherit

underscore-inherit ==================

underscore-inherit

Add constructor extensibility to Underscore.js.

In the browser, simply include the script on the page (after _ is defined).

In Node, all you need to do is require('underscore-inherit').

var Animal = _.inherit({
  name: 'Chupacabra',
  sound: 'roarmeowbarkmoo',
  singfunction () {
    alert(this.name + ' says ' + Array(5).join(this.sound));
  }
});
 
var HardWorker = _.inherit();
 
var Dog = _.inherit(Animal, HardWorker, {
  name: 'Gunner',
  sound: 'woof'
}, {staticProp: 'hello'});
 
var Cat = _.inherit(Animal, {
  name: 'Mittens',
  sound: 'meow'
});
 
(new Animal()).sing();
(new Cat()).sing();
(new Dog()).sing();
 
// (new Cat) instanceof Animal === true 
// (new Cat) instanceof Cat === true 
 
// Dog.staticProp === true 
// (new Dog) instanceof Animal === true 
// (new Dog) instanceof HardWorker === true 
// (new Dog) instanceof Dog === true