重複の可能性:
Javascript名前空間
私はJavaScriptにかなり慣れていないので、JavaScriptの名前空間の意味を誰かが教えてくれないかと思っていました。
また、リソース(例:記事などは、この件に関して非常に高く評価されています。
JavaScriptは、否定的な方法で相互作用する可能性のあるグローバル変数を非常に簡単に作成できるように設計されています。名前空間の慣例は、通常、他のライブラリによって作成されたものと衝突しないように、独自の関数と変数をカプセル化するオブジェクトリテラルを作成することです。
_var MyApplication = {
var1: someval,
var2: someval,
myFunc: function() {
// do stuff
}
};
_
次に、myFunc()
をグローバルに呼び出す代わりに、常に次のように呼び出されます。
_MyApplication.myFunc();
_
同様に、_var1
_は常に次のようにアクセスされます。
_console.log(MyApplication.var1);
_
この例では、アプリケーションのすべてのコードがMyApplication
内で名前空間化されています。したがって、変数が他のライブラリによって作成された変数やDOMによって作成された変数と衝突する可能性ははるかに低くなります。
(テクニックを含む)簡単な説明については、これを読んでください:
Crockford で概説されている「usestrict」とともに、この名前空間手法を使用します。
var MyNamespace = (function () {
"use strict";
function SomeOtherFunction() {
}
function Page_Load() {
}
return { //Expose
Page_Load: Page_Load,
SomeOtherFunction: SomeOtherFunction
};
} ());
MyNamespace.Page_Load();
簡単なチュートリアルを読む ここ
名前空間は、グローバル名前空間(ウィンドウ変数なし)の汚染を回避するために使用されます。実際、各名前空間は単なる大きな変数であり、多くのプロパティとメソッドがあります。
これは、JavaScriptでは関数全体(メソッド)を変数として使用できるためです。