Revealing Module Example
by DJ Martin
JavaScript
//Self-Executing Anonymous Function EXAMPLE
(function() {
function tellMeThePoint(){
alert("This code is executed in it's own scope.");
}
tellMeThePoint();
})();
//NAMESPACE EXAMPLE
window.clg = window.clg || {};
window.clg.razKids = window.clg.razKids || {};
window.clg.razKids.calculateTax = function(quantity) {
return quantity * 1.06;
}
// alert(window.clg.razKids.calculateTax(12));
//Revealing Module Pattern: Singleton Example
var calculator = (function () {
var add = function (a, b) {
return a + b;
};
var subtract = function (a, b) {
return a - b;
};
return {
add: add,
subtract: subtract
};
})();
// alert(calculator.add(2, 3));
//Revealing Module Pattern: Instance Example
var Calculator2 = function () {
var runningTotal = 0;
var add = function (a) {
runningTotal = runningTotal + a;
};
var subtract = function (a) {
runningTotal = runningTotal - a;
};
var showTotal = function () {
alert(runningTotal);
};
return {
add: add,
subtract: subtract,
showTotal: showTotal
};
};
var calc = new Calculator2();
calc.add(2);
//calc.showTotal();
calc.add(5);
//calc.showTotal();
calc.subtract(22);
//calc.showTotal();