Javascript inheritance manager
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
.gitignore
.npmignore
LICENSE
README.html
README.md
index.js
package.json

README.md

Heritable

Inheritance mechanisms for making prototypal classes

Installation

via [npm]

npm install heritable

Usage

var	Heritable = require('heritable.js'),
	Animal, Human,	// Constructors
	animal, human;	// instances

Animal = new Heritable('Animal');
animal = new Animal();
console.log('animal instanceof Animal: ' + (animal instanceof Animal));

Human = new Heritable('Human');
human = new Human();
console.log('human instanceof Animal: ' + (human instanceof Animal));
console.log('human instanceof Human: ' + (human instanceof Human));
console.log('animal instanceof Human: ' + (animal instanceof Human));

Some details

You can provide an initializer function and methods for a Heritable class:

animalInitializer = function (o) {
	o = o || {};
	this.type = o.type;
};

animalMethods = {
	getType: function () {
		return this.type;
	}
};

Animal = new Heritable('Animal', null, animalInitializer, animalMethods);
animal = new Animal({type: 'gorilla'});
console.log('animal type:   ' + animal.getType());

To Do

1 do not init if already an object
2 add a method for adding methods to a Heritable class
3 perhaps: distinguish Heritable class methods from members