inherit

WebJar for inherit

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

inherit
Last Version

Last Version

2.2.6
Release Date

Release Date

Type

Type

jar
Description

Description

inherit
WebJar for inherit
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/dfilatov/inherit

Download inherit

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/inherit/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>inherit</artifactId>
    <version>2.2.6</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/inherit/
implementation 'org.webjars.npm:inherit:2.2.6'
// https://jarcasting.com/artifacts/org.webjars.npm/inherit/
implementation ("org.webjars.npm:inherit:2.2.6")
'org.webjars.npm:inherit:jar:2.2.6'
<dependency org="org.webjars.npm" name="inherit" rev="2.2.6">
  <artifact name="inherit" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='inherit', version='2.2.6')
)
libraryDependencies += "org.webjars.npm" % "inherit" % "2.2.6"
[org.webjars.npm/inherit "2.2.6"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

Inherit NPM version

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.staticProperty; // 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"

Versions

Version
2.2.6
2.2.3