Javascript設計モード--Module(モジュール)モード
1967 ワード
方法の対象文字数表示法
対象の字面量表現法では、一つの対象が大括弧に含まれ、カンマで区切られたname/valueペアとして記述されています.オブジェクト内の名前は、文字列または識別子であってもよく、後にコロンが付いています.オブジェクトの最後のname/valueにコンマを付けないとエラーが発生します.
Moduleモードは、クローズドパッケージを使用した「プライベート」状態と組織です.これは、大域的な名前空間を汚染しないように、公有/私有法と変数を混ぜて包装する方法を提供しています.このモードを通じて、1つの共有APIに戻るだけで、他のすべてはプライベートの閉ループに維持される.
対象の字面量表現法では、一つの対象が大括弧に含まれ、カンマで区切られた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