The Module Pattern has as added benefit of allowing you to add namespace to classes. The below extends the previous example to make the class COM.LEKKIMWORLD.ModuleAbc. Very cool in my eyes and reduces the chance for name collisions much like with Dojo classes.
// Create a COM namespace
var COM = (function() {
return {};
}());
// Create a LEKKIMWORLD namespace
COM.LEKKIMWORLD = (function() {
return {};
}());
// Add a class called ModuleAbc to the COM.LEKKIMWORLD namespace
COM.LEKKIMWORLD.ModuleAbc = (function(secret) {
// the object we're incapsulating
var OBJ = {};
// private variables (these are truely private and
// cannot be accessed from the outside)
var secret = "my secret is: "
// my property
OBJ.myproperty = "my property value";
// echo method
OBJ.echo = function(v) {
return "Echo: " + v;
};
// return the object
return OBJ;
});