26

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

私は JavaScript にかなり慣れていないので、JavaScript Namespacing が何を意味するのか、誰かが私に適切な説明をしてくれるかどうか疑問に思っていましたか?

また、記事などのリソースも、この件に関して高く評価されています。

4

3 に答える 3

40

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

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

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

MyApplication.myFunc();

同様に、var1常に次のようにアクセスします。

console.log(MyApplication.var1);

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

于 2011-12-15T16:24:10.523 に答える
6

Crockfordによって概説された「厳密な使用」とともに、この名前空間手法を使用します

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

    function SomeOtherFunction() {

    }

    function Page_Load() {

    }

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

MyNamespace.Page_Load();
于 2011-12-15T16:32:07.453 に答える
3

ここで簡単なチュートリアルを読んでください

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

これは、javascript では関数 (メソッド) 全体を変数として持つことができるためです。

于 2011-12-15T16:23:44.727 に答える