module-pattern.js
// http://christianheilmann.com/2007/08/22/again-with-the-module-pattern-reveal-something-to-the-world/
var revealingModulePattern = function(){
var privateVar = 1;
function privateFunction(){
alert('private');
};
var publicVar = 2;
function publicFunction(){
anotherPublicFunction();
};
function anotherPublicFunction(){
privateFunction();
};
function getCurrentState(){
return 2;
};
// reveal all things private by assigning public pointers
return {
init:publicFunction,
count:publicVar,
increase:anotherPublicFunction,
current:getCurrentState()
}
}();
// Usage
alert(revealingModulePattern.current) // => 2
revealingModulePattern.init();