1.1.0 • Published 11 years ago
31i73-class v1.1.0
31i73-class
A simple node.js class library
API
class( statics , instanced )
- statics - An object containing all static class properties.
This may also contain the special property_init
for declaring the initialiser, and_inherits
for declaring a single or multiple classes to inherit from - instanced - An object containing all instance class properties
Create a class
var class = require('31i73-class');
var Person = class({
_init: function(name){
this.name = name;
this.age = undefined;
}
},{
get_name: function(){ return this.name; },
set_name: function(set){ this.name = set; },
get_age: function(){ return this.age; },
set_age: function(set){ this.age = set; }
});
var bob = new Person('bob');
bob.set_age(42);
Static methods
var Person = class({
_init: function(name){
this.name = name;
this.age = undefined;
},
create_adult: function(name){
var create = new Person(name);
create.set_age(24);
return create;
},
create_child: function(name){
var create = new Person(name);
create.set_age(12);
return create;
}
},{
get_name: function(){ return this.name; },
set_name: function(set){ this.name = set; },
get_age: function(){ return this.age; },
set_age: function(set){ this.age = set; }
});
var littly_timmy = Person.create_child('Timmy');
Inheritence
var Animal = class({
_init: function(name){
this.name = name;
this.soundeffect = undefined;
}
},{
set_soundeffect: function(path){
this.soundeffect = new Soundeffect(path);
}
});
var Horse = class({
_inherits: Animal,
_init: function(){
Animal.call(this,'horse');
this.set_soundeffect('horse.wav');
}
});
//Multiple inheritence
var Mule = class({
_inherits: [
Horse,
Donkey
],
_init: function(){
Animal.call(this,'mule');
this.set_soundeffect('mule.wav');
}
});
//a missing initialiser causes the first inherited classes initialiser to be called, instead
var Shire_horse = class({
_inherits: Horse
});