rrylee
1/7/2016 - 11:48 AM

JavaScript Singleton pattern -- es5

JavaScript Singleton pattern -- es5

var dom = (function() {
    var _counter = 0;
    var instance;

    function generateId () {
        return "customId" + _counter ++;
    }

    function create (targetName, id) {
        var el = document.createElement(targetName);
        el.id = id || generateId();

        return el;
    }

    function getInstance () {
        return {
            generateId: generateId,
            create: create
        };
    }

    return {
        getInstance: function () {
            return instance || (instance = getInstance());
        }
    }
})();