Inherit
This module provides some syntax sugar for "class" declarations, constructors, mixins, "super" calls and static members.
Getting Started
In Node.js
You can install using Node Package Manager (npm):
npm install inherit
In Browsers
<script type="text/javascript" src="inherit.js"></script>
It also supports RequireJS module format and YM module format.
Module has been tested in IE6+, Mozilla Firefox 3+, Chrome 5+, Safari 5+, Opera 10+.
Specification
Creating a base class
Function inherit(Object props);
Creating a base class with static properties
Function inherit(
Object props,
Object staticProps);
Creating a derived class
Function inherit(
Function BaseClass,
Object props,
Object staticProps);
Creating a derived class with mixins
Function inherit(
[
Function BaseClass,
Function Mixin,
Function AnotherMixin,
...
],
Object props,
Object staticProps);
Example
var inherit = require('inherit');
var A = inherit({
__constructor : function(property) {
this.property = property;
},
getProperty : function() {
return this.property + ' of instanceA';
},
getType : function() {
return 'A';
},
getStaticProperty : function() {
return this.__self.staticProperty;
}
}, {
staticProperty : 'staticA',
staticMethod : function() {
return this.staticProperty;
}
});
var B = inherit(A, {
getProperty : function() {
return this.property + ' of instanceB';
},
getType : function() {
return this.__base() + 'B';
}
}, {
staticMethod : function() {
return this.__base() + ' of staticB';
}
});
var M = inherit({
getMixedProperty : function() {
return 'mixed property';
}
});
var C = inherit([A, M], {
getMixedProperty : function() {
return this.__base() + ' from C';
}
});
var instanceOfB = new B('property');
instanceOfB.getProperty();
instanceOfB.getType();
B.staticMethod();
var instanceOfC = new C();
instanceOfC.getMixedProperty()