Skip to content

Instantly share code, notes, and snippets.

@levi
Created November 16, 2012 01:42
Show Gist options
  • Save levi/4083161 to your computer and use it in GitHub Desktop.
Save levi/4083161 to your computer and use it in GitHub Desktop.
Dynamic Namespaces
var APP = {};
APP.namespace = function(path) {
var parts = path.split('.'),
parent = APP;
if (parts[0] === 'APP') parts = parts.slice(1);
for (var i = 0, len = parts.length; i < len; i++) {
if (typeof parent[parts[i]] === 'undefined') {
parent[parts[i]] = {};
}
parent = parent[parts[i]];
}
return parent;
};
var module = APP.namespace('APP.Controllers.User');
console.log(APP.Controllers.User === module);
var module2 = APP.namespace('Controllers.Posts');
console.log(APP.Controllers.Posts === module2);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment