namespace pattern
by Artem
JavaScript
const app = (function() {
'use strict';
const MYAPP = {};
MYAPP.$namespace = function(ns) {
let parent = MYAPP;
const parts = ns.split('.').slice(1);
parts.forEach((part, idx) => {
//console.log(parent, parts);
if (typeof parent[part] === 'undefined') {
parent[part] = {};
}
parent = parent[part];
});
return parent;
};
return MYAPP;
}());
var module2 = app.$namespace('MYAPP.modules.module2');
var module3 = app.$namespace('MYAPP.modules.module3');
console.log(app.modules); // true