Revealing Module Pattern

Public interface

by Steven Senkus

JavaScript

var myRevealingModule = function() {

    var privateVar = "private var",
        publicVar = "public var";
    
    function privateFunction() {
        console.log("privateVar === " + privateVar);
    }
    
    function publicSetPrivateVar(strName) {
        privateVar = strName;
    }
    
    function publicGetPrivateVar() {
        privateFunction();
    }
    
    return {
        setPrivateVar: publicSetPrivateVar,
        getPublicVar: publicVar,
        getPrivate: publicGetPrivateVar
    };

}();
var MRM = myRevealingModule;
console.log(MRM.getPublicVar);
console.log(MRM.getPrivate());
MRM.setPrivateVar('sdfsdfsdf');
console.log(MRM.getPrivate());