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());
}
}
})();