classroom
v0.2.0
Published
A Ruby-like implementation for ES5
Downloads
9
Readme
ClassRoom
What is it ?
A implementation of classes in Javascript for ES5 engines.
Features
- Constructor
- Private members
- Constant members
Examples
var classRoom = require('classroom');
var testClass = classRoom.teach({
initialize: function (arg1, arg2/* , arg3, ... , argn */) {
// This is the constructor function
// Properties added here will be private
this.privateArg = arg1;
},
const: { //Describes the constant members of your instances
const1: "Awesome, I'm immutable!";
},
private: { // Describes the properties that are only visible inside the instance
pv1: "only the instance methods can see me, sweet!",
secretFn: function () {
return "I'm invisible to the outside world.";
}
},
// All the other properties are public instance members
gimmeSecret: function () {
return "I'm a getter for a private member: " + this.secretFn();
}
});
var instance = testClass.new();
instance.const1; // => "Awesome, I'm immutable!"
instance.const1 = 'new value'; // throws TypeError
instance.privateArg; // => undefined
instance.pv1; // => undefined
instance.privateArg; // => undefined
instance.secretFn; // => undefined
instance.gimmeSecret(); // => "I'm a getter for a private member: I'm invisible to the outside world."
TODO
- Inheritance
- Composition (aka mixins)
- Class members
Licence
MIT