Skip to content

Instantly share code, notes, and snippets.

@nzakas
Created December 6, 2011 19:14
Show Gist options
  • Save nzakas/1439504 to your computer and use it in GitHub Desktop.
Save nzakas/1439504 to your computer and use it in GitHub Desktop.
A single global with a namespace method
//BSD Licensed
var YourGlobal = {
namespace: function(ns){
var parts = ns.split("."),
object = this,
i, len;
for (i=0, len=parts.length; i < len; i++) {
if (!object[parts[i]]) {
object[parts[i]] = {};
}
object = object[parts[i]];
}
return object;
}
};
//usage
YourGlobal.namespace("foo.bar");
YourGlobal.foo.bar.message = "Hello world!";
YourGlobal.namespace("foo").baz = true;
@nzakas
Copy link
Author

nzakas commented Dec 7, 2011

@medikoo - I'm not sure why you're making so many assumptions about my intentions. Namespacing is still a useful technique, I just wanted to share this code. Use it however you want, with modules, without modules, with Node.js, with a browser...it really doesn't matter to me. This isn't a debate, it's just sharing some code.

@medikoo
Copy link

medikoo commented Dec 7, 2011

@nzakas I thought you're intention was to show new function that may help with client-side modules organization. I just wanted to shed a light on new techniques that developed recently and will be part of standard in a future (Harmony modules), that's it. If I misunderstood your point, sorry about that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment