Package Exports
- inherit
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (inherit) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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');
// base "class"
var A = inherit(/** @lends A.prototype */{
__constructor : function(property) { // constructor
this.property = property;
},
getProperty : function() {
return this.property + ' of instanceA';
},
getType : function() {
return 'A';
},
getStaticProperty : function() {
return this.__self.staticMember; // access to static
}
}, /** @lends A */ {
staticProperty : 'staticA',
staticMethod : function() {
return this.staticProperty;
}
});
// inherited "class" from A
var B = inherit(A, /** @lends B.prototype */{
getProperty : function() { // overriding
return this.property + ' of instanceB';
},
getType : function() { // overriding + "super" call
return this.__base() + 'B';
}
}, /** @lends B */ {
staticMethod : function() { // static overriding + "super" call
return this.__base() + ' of staticB';
}
});
// mixin M
var M = inherit({
getMixedProperty : function() {
return 'mixed property';
}
});
// inherited "class" from A with mixin M
var C = inherit([A, M], {
getMixedProperty : function() {
return this.__base() + ' from C';
}
});
var instanceOfB = new B('property');
instanceOfB.getProperty(); // returns 'property of instanceB'
instanceOfB.getType(); // returns 'AB'
B.staticMethod(); // returns 'staticA of staticB'
var instanceOfC = new C();
instanceOfC.getMixedProperty() // returns "mixed property from C"