JavaScript Classes Quick Reference
JavaScript has no concept of classes built in, but you can essentially create classes quite easily because of the looseness of JavaScript. This is basically a cheat sheet for the common class paradigms in JavaScript.
Class Construction
function ClassA (parameter1) {
this.instanceVariable = parameter1;
}
ClassA.prototype.methodName = function (p1) {
};
var instance = new ClassA( "param" );
instance.methodName( "param" );
Inheritance
function SubclassA (parameter1) {
ClassA.call(this);
this.instanceVariable = parameter1;
}
SubclassA.prototype = Object.create(ClassA.prototype);
SubclassA.prototype.subclassMethod = function () {
};
var subclassInstance = new SubclassA( "param" );
subclassInstance.methodName( "param" );
subclassInstance.subclassMethod();
Method Override
SubclassA.prototype.methodName = function (p1) {
ClassA.prototype.methodName.call(this, p1);
};
Singleton
var singleton = (function () {
var _privateVariable1,
_privateVariable2;
function _privateMethod () {
}
function _publicMethodImplementation () {
}
return {
publicGetter: function () { return _privateVariable1; },
publicMethod: _publicMethodImplementation
};
})();
var a = singleton.publicGetter();
singleton.publicMethod();
Type Identification
var a = new ClassA ();
var b = new SubclassA ();
a instanceof ClassA; // returns true
a instanceof SubclassA; // returns false
b instanceof ClassA; // returns true
b instanceof SubclassA; // returns true