Singleton Pattern

Only one instance is the Singleton way.

by Steven Senkus

JavaScript

var mySingleton = (function(){
    var instance;
    
    function init() {

        function privateMethod() {
            console.log('privateMethod() is private');
        }
        
        var privateVariable = "I'm also private";
        var privateRandomNumber = Math.random();
        
        return {
            publicMethod: function() {
                console.log('The public can see this publicMethod()!');
            },
            publicProperty: 'I am also public',
            getRandomNumber: function() {
                return privateRandomNumber;
            }
            
        };
    
    };
    return {
        getInstance: function() {
            if (!instance) {
                instance = init();
            }
            return instance;
        }
    }
})();


var singleA = mySingleton.getInstance();
var singleB = mySingleton.getInstance();

console.log(singleA.getRandomNumber());
console.log(singleB.getRandomNumber());