Javascript設計モード--Module(モジュール)モード


方法の対象文字数表示法
対象の字面量表現法では、一つの対象が大括弧に含まれ、カンマで区切られたname/valueペアとして記述されています.オブジェクト内の名前は、文字列または識別子であってもよく、後にコロンが付いています.オブジェクトの最後のname/valueにコンマを付けないとエラーが発生します.
 /**
 *             
 */
var myModule = {

    myProperty: "someValue",

    myConfig: {
        useCaching: true,
        language: "en"
    },

    myMethod: function () {
        console.log("the first method");
    },

    myMethod2: function () {
        console.log("the second method");
    },

};

console.log(myModule.myProperty);           // someValue
console.log(myModule.myConfig);             // {useCaching: true, language: 'en'}
console.log(myModule.myConfig.useCaching);  // true
myModule.myMethod();                        // the first method
myModule.myMethod2();                       // the second method
方法二Moduleモード
Moduleモードは、クローズドパッケージを使用した「プライベート」状態と組織です.これは、大域的な名前空間を汚染しないように、公有/私有法と変数を混ぜて包装する方法を提供しています.このモードを通じて、1つの共有APIに戻るだけで、他のすべてはプライベートの閉ループに維持される.
/**
 * Module    
 */
var myNameSpace = (function () {

    //     
    var myPrivateVar = 0;

    //     
    var myPrivateMethod = function (foo) {
        console.log(foo);
    };


    //   API
    return {

        //     
        myPublicVar: "foo",

        //     
        myPublicFunction: function (bar) {

            //       
            myPrivateVar ++;

            //       
            myPrivateMethod(bar);
        },

        //      
        myPublicFunction2: function () {
            console.log("success");
        }
    };
}) ();

console.log(myNameSpace.myPrivateVar);          // undefined
console.log(myNameSpace.myPrivateVar);          // undefined
console.log(myNameSpace.myPublicVar);           // foo
console.log(myNameSpace.myPublicFunction);      // Function
myNameSpace.myPublicFunction2();                // success
myNameSpace.myPublicFunction("i am first");     // i am first