0.2.2 • Published 10 years ago
subtypejs v0.2.2
subtype
Simple OOP library. Works fast like native inheritance (see benchmarks). The library does not contain any super or analogs because it contaminates the prototype and a bad influence on performance.
##Install For bower users:
bower install subtype
For node.js users:
npm install subtypejs
Also you can download uncompressed and compressed version from GitHub.
##Usage In a browser:
<script src="path/to/subtype.js"></script>
In an AMD loader:
define(['subtype'], function (Subtype) {
// code...
});
In node.js:
var Subtype = require('subtypejs');
// code...
And then:
var Human = Subtype.extend({
constructor: function (name) {
this.name = name;
},
say: function (words) {
return this.name + ': ' + words;
}
});
var Actor = Human.extend({
say: function (words) {
// explicit call the super method
return 'actor ' + Human.prototype.say.call(this, words);
}
});
var human = new Human('Robert');
console.log(human.say('Hi!')); // => "Robert: Hi!"
var actor = new Actor('Jeremy');
console.log(actor.say('Hello!')); // => "actor Jeremy: Hello!"
console.log(
human instanceof Human &&
human instanceof Subtype &&
actor instanceof Actor &&
actor instanceof Human &&
actor instanceof Subtype
); // => true
console.log(
Subtype === Subtype.prototype.constructor &&
Human === Human.prototype.constructor &&
Actor === Actor.prototype.constructor
); // => true