web-dev-qa-db-ja.com

「JavaScript名前空間」とはどういう意味ですか?

重複の可能性:
Javascript名前空間

私はJavaScriptにかなり慣れていないので、JavaScriptの名前空間の意味を誰かが教えてくれないかと思っていました。

また、リソース(例:記事などは、この件に関して非常に高く評価されています。

25
bc17

JavaScriptは、否定的な方法で相互作用する可能性のあるグローバル変数を非常に簡単に作成できるように設計されています。名前空間の慣例は、通常、他のライブラリによって作成されたものと衝突しないように、独自の関数と変数をカプセル化するオブジェクトリテラルを作成することです。

_var MyApplication = {
  var1: someval,
  var2: someval,
  myFunc: function() {
    // do stuff
  }
};
_

次に、myFunc()をグローバルに呼び出す代わりに、常に次のように呼び出されます。

_MyApplication.myFunc();
_

同様に、_var1_は常に次のようにアクセスされます。

_console.log(MyApplication.var1);
_

この例では、アプリケーションのすべてのコードがMyApplication内で名前空間化されています。したがって、変数が他のライブラリによって作成された変数やDOMによって作成された変数と衝突する可能性ははるかに低くなります。

39

(テクニックを含む)簡単な説明については、これを読んでください:

JavaScriptの名前空間

8
Justin Niessner

Crockford で概説されている「usestrict」とともに、この名前空間手法を使用します。

var MyNamespace = (function () {
    "use strict"; 

    function SomeOtherFunction() {

    }

    function Page_Load() {

    }

    return { //Expose 
        Page_Load: Page_Load,
        SomeOtherFunction: SomeOtherFunction
    };
} ());

MyNamespace.Page_Load();
6
CaffGeek

簡単なチュートリアルを読む ここ

名前空間は、グローバル名前空間(ウィンドウ変数なし)の汚染を回避するために使用されます。実際、各名前空間は単なる大きな変数であり、多くのプロパティとメソッドがあります。

これは、JavaScriptでは関数全体(メソッド)を変数として使用できるためです。

2
Mihalis Bagos