JSFiddle - React, Tailwind, and code Playground
by b_long
HTML
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
JavaScript
Ext.ns("foo.bar.baz");
"use strict";
Ext.onReady(function () {
(function () {
foo.bar.baz.ASingletonClass = (function () {
function ASingletonClass() {
//do stuff
var x = "foo";
this.aMethod = function () {
console.log("called aMethod - x " + x);
}
}
var instance;
return {
getInstance: function () {
if (instance == null) {
instance = new ASingletonClass();
// Hide the constructor so the returned objected can't be new'd...
instance.constructor = null;
}
return instance;
}
};
})();
}());
(function (global) {
"use strict";
foo.bar.baz.MySingletonClass = function () {
if (foo.bar.baz.MySingletonClass.prototype._singletonInstance) {
return foo.bar.baz.MySingletonClass.prototype._singletonInstance;
}
foo.bar.baz.MySingletonClass.prototype._singletonInstance = this;
this.publicFoo = function () {
console.log("Called foo");
};
this.otherFoo = function () {
console.log("Called otherFoo");
};
};
foo.bar.baz.MySingletonClass.getInstance = function () {
var singletonClass = new foo.bar.baz.MySingletonClass();
return singletonClass;
};
}(window));
var inst1 = new foo.bar.baz.MySingletonClass(),
inst2 = foo.bar.baz.MySingletonClass.getInstance(),
inst3 = new foo.bar.baz.MySingletonClass(),
inst4 = foo.bar.baz.MySingletonClass.getInstance();
inst3.publicFoo();
function notCool() {
console.error("Something isn't acting like a Singleton!");
}
inst1 === inst2 ? console.log("sweet 1") :...