steveosoule
2/5/2013 - 10:41 PM

module-pattern.js

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();