Home

Lesson 11: Modularization

jsBin

Modularization

Ansätze zur Kapselung und Modularisierung

Module Pattern


var myNamespace = (function () {

    var myPrivateVar, myPrivateMethod;

    // A private counter variable
    myPrivateVar = 0;

    // A private function which logs any arguments
        myPrivateMethod = function( foo ) {
        console.log( foo );
    };

    return {

        // A public variable
        myPublicVar: "foo",

        // A public function utilizing privates
        myPublicFunction: function( bar ) {

            // Increment our private counter
            myPrivateVar++;

            // Call our private method using bar
            myPrivateMethod( bar );

        }
    };

})();
        

Revealing Module Pattern


var myRevealingModule = function () {

    var privateVar = "Ben Cherry",
    publicVar  = "Hey there!";

    function privateFunction() {
        console.log( "Name:" + privateVar );
    }

    function publicSetName( strName ) {
        privateVar = strName;
    }

    function publicGetName() {
        privateFunction();
    }


    // Reveal public pointers to
    // private functions and properties

    return {
        setName: publicSetName,
        greeting: publicVar,
        getName: publicGetName
    };

}();

myRevealingModule.setName( "Paul Kinlan" );
        

Module Loading dissected