私たちのプロジェクトでは、次のことを行います。プロジェクトをFooと呼び、その中にBarというモジュールがあるとします。
次に、Foo名前空間に相当するものを定義するFoo.jsというファイルを宣言します。
Foo = (function(){
return {
};
})();
次に、Barモジュールのコードを含むFoo.Bar.jsというファイルを作成します。
Foo.Bar = (function(){
// var declarations here that should be invisible outside Foo.Bar
var p, q;
return {
fun1 : function(a, b){
// Code for fun1 here
},
fun2 : function(c) {
// Code for fun2 here
}
} // return
})();
すぐに実行され、に割り当てられたオブジェクトを返す関数であることに注意してくださいFoo.Bar
。のようなローカル変数は、クロージャー内にあるために使用できますが、外部では表示されp
ませんq
。fun1
fun2
Foo.Bar
Foo.Barの関数は、オブジェクトなどのコンストラクターにすることができます。
これで、HTMLに次のように両方のファイルを含めることができます。
<script type="text/javascript" src="Foo.js"></script>
<script type="text/javascript" src="Foo.Bar.js"></script>
Foo.Bar
その結果、メインHTMLファイルのJavaScriptでの関数を問題なく呼び出すことができます。