node package manager
Easy collaboration. Discover, share, and reuse code in your team. Create a free org »

extendable

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

Build Status

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 

License

MIT