-
-
Save nzakas/1439504 to your computer and use it in GitHub Desktop.
//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 they're not, I was rather referring to style of building one big namespace (of namespaces) in one global variable, with Node.js style modules you can build complex applications and don't use global variables at all, also you don't have to nest namespaces as it's in your example.
@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.
@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.
@medikoo - I don't see modules and namespaces as mutually exclusive.