Javascript Static Singleton
Singleton pattern for Javascript
HTML
<textarea id="test" rows="5"></textarea>
CSS
textarea {
resize: none;
}
JavaScript
// Based on http://jsfiddle.net/timsommer/thxn4/ by Tim Sommer
var Singleton = (function () {
// singleton class definition
var _class = function Singleton() {
this.name = "Singleton";
this.pointX = 16;
}
// instance holder
var instance;
// emulation of static variables and methods
return {
name: 'Singleton',
// get a singleton instance of class _singleton
getInstance: function () {
if (instance === undefined) instance = new _class();
return instance;
}
};
})();
function log(message) {
var output = document.getElementById("test");
var lines = output.value.split("\n");
lines.push(message);
output.value = lines.join("\n");
}
var test = Singleton.getInstance();
log(test.pointX); // outputs 16
test.pointX = 15;
log(test.pointX); // outputs 15