extendable

Extend constructors using backbone's .extend signature

Extend your JavaScript constructors in the same as you are used to in backbone.js

var extend = require('extendable')
  , EventEmitter = require('events').EventEmitter;
 
function Awesomeness() {
  var self = this;
 
  setTimeout(function () {
    self.render(self.data);
  }, 100);
 
  EventEmitter.call(this);
}
 
Awesomeness.prototype = new EventEmitter;
Awesomeness.prototype.constructor = Awesomeness;
 
Awesomeness.prototype.data = 'bar';
Awesomeness.prototype.render = function render() {
  // does nothing 
};
 
Awesomeness.extend = extend;

And you can now use it

var SuperAwesome = Awesomeness.extend({
    data: 'trololol'
 
  , render: function render(data) {
      console.log(data);
    }
});
 
new SuperAwesome();
// outputs "trololo" after 100 ms 

MIT