Singleton JS Example
by Matthew Marcus
JavaScript
function Foo(config){
var
bar = [],
config = config || null;
this.addBar = function(barInput){
bar.push(barInput);
};
this.getBar = function(){
console.log(config);
return bar;
};
}
var Singleton = (function () {
var
obj = null,
instance;
function createInstance(config) {
var object = new obj(config);
return object;
}
return {
getInstance: function (config) {
if (!instance) {
instance = createInstance(config);
}
return instance;
},
setObject: function(underlyingObj){
obj = underlyingObj;
}
};
})();
var singlton = Singleton.setObject(Foo);
var foo = Singleton.getInstance({a: 'A'});
var foo2 = Singleton.getInstance();
foo2.addBar('B');
console.log(foo.getBar());