node package manager

Introducing npm Enterprise add-ons. Integrate third-party dev tools into npm…

better-js-class

A convenient way to emulated class and inheritance in Javascript.

class

A convenient way to emulated class and inheritance in Javascript.

Why is this "better"? In the inheritance case, the super function can be called without explicitly referring to the parent class. One can just write:

this.parent.methodName.call(this, args);

Example

var Class = require('better-js-class');
 
var A = Class({
    _init: function() {
        this._bar = 'bar';
    },
 
    foo: function() {
        console.log('foo ' + this._bar);
    }
});
 
var B = Class(A, {
    _init: function() {
        this.parent._init.call(this);
    },
 
    kaz: function() {
        console.log('kaz ' + this._bar);
    }
});
 
var a = new B();
a.foo();
a.kaz();

The constructor function's name is conventioned to be "_init".