/obx

Primary LanguageJavaScript

Simple inheritance helper with named constructor.

Installation

$ npm install obx

Example

var Obj = require('obx');

// copy of object class
var Base = Obj.create();

// with named constructor "function Model() { Base.apply(this, arguments) }"
var BaseModel = Base.create('Model', {
    foo: 'bar',
    baz: 'foo'
}, {
    fn: function() { return 1 }
});

var Model = BaseModel.create(function Model() {
    BaseModel.apply(this, arguments); // super call
    // or this.__parent.apply(this, arguments);

    this.bar = 'baz';

    // self constructor
    console.log(this.__constructor.name) // >>> 'Model'
}, {
    foo: BaseModel.prototype.foo + '!',
    fn: function() {
        return this.__parent.prototype.fn() + 1;
    }

);

var model = new Model;

model.foo; // >>> 'foo!'
model.bar; // >>> 'baz'
model.baz; // >>> 'foo'
model.fn(); // >>> 2

Running tests

$ make test

Authors

License

MIT