var Singleton = (function(){ var instance; function init() { var privateVariable = '123'; function privateMethod() { console.log('i am a private method!'); } return { publicMethod: function(){ console.log('i am a public method!'); }, publicProperty: '456' } } return { getInstance: function(){ if(!instance){ instance = init(); } return instance; } } })()