osh-class
v0.0.2
Published
openscihub.org: new-free, inheriting js class factory.
Downloads
20
Readme
Class
Yet another wrapper for creating classes in js.
Installation
npm install osh-class
Example usage
var Class = require('osh-class');
// Pass in a prototype object.
var Boat = Class({
constructor: function(opts) {
// Do stuff with opts object here.
this.opts = opts;
},
start: function() {
if (!this.opts.fuel) {
throw new Error('Put fuel in it.');
}
this._running = true;
}
});
// Or add non-constructor methods to prototype one-by-one.
Boat.prototype.stop = function() {
this._running = false;
};
// You don't have to use new Boat(), but can if you want
var boat = Boat();
// Subclass Boat
var Canoe = Class(Boat, {
constructor: function() {
this._super({fuel: true});
}
});
// Or like so,
var QueenMary = Boat.extend({
constructor: function() {
this._super({fuel: false});
}
});
Documentation
Signature:
Class([Function super,] Object prototype)
The Class function takes 1 or 2 arguments. One of them is always a prototype for your class. If 2 arguments are given, the former is the super class and should be the result of a previous call to Class.
A Class constructor is equipped with a this._super(opts)
method,
var A = Class({
constructor: function(value) {this.value = value;}
});
var B = Class(A, {
constructor: function() {this._super(1);}
});
var b = B();
console.log(b.value); // 1
If an explicit constructor
function is not specified on a subclass,
the constructor
of the superclass will be used. For example,
var A = Class({
constructor: function(value) {this.value = value;}
});
var B = Class(A, {});
var b = B(1);
console.log(b.value); // 1
License
MIT