Revealing Module Pattern

Using closures in javascript, we can create public and private methods.


Only the methods and variables that are specifically returned are available publicly and we can provide references to privately declared methods and variables inside the public methods.

Layout for RMP:

var applicationModule = (function() {
    //private variable. Existence limited within
    //this closure
    var privateVariable = 10;
    var privateFunction = function() {
    //Not accessible publicly
    //accessibly publicly as
    var publicFunction = function() {
    return privateVariable;
    return {
    publiclyReturnPrivateVar: publicFunction
//prints value of privateVariable