JAvascriptシミュレーションネーミングスペース

1345 ワード

C++とC#では、名前の競合を最小限に抑えるためにネーミングスペースが使用されます.例えば、.NET Frameworkでは、名前空間がMicrosoftを助ける.Build.Task.MessageクラスとSystem.Messaging.Messageで区切る.JavaScriptにはネーミングスペースをサポートする特定の言語機能はありませんが、オブジェクトを使用してネーミングスペースをシミュレートするのは簡単です.JavaScriptライブラリを作成する場合は、次のようにグローバル関数やクラスを定義することなく、ネーミングスペースにパッケージできます.

var MSDNMagNS = {};
MSDNMagNS.Pet = function(name) { // code here };
MSDNMagNS.Pet.prototype.toString = function() { // code };
var pet = new MSDNMagNS.Pet(“Yammer”);

ネーミングスペースの1つのレベルは一意ではない場合があります.したがって、ネストされたネーミングスペースを作成できます.

var MSDNMagNS = {};
// nested namespace “Examples”
MSDNMagNS.Examples = {};
MSDNMagNS.Examples.Pet = function(name) { // code };
MSDNMagNS.Examples.Pet.prototype.toString = function() { // code };
var pet = new MSDNMagNS.Examples.Pet(“Yammer”);

これらの冗長なネストされたネーミングスペースを入力すると疲れることが想像できます.幸いなことに、ライブラリ・ユーザーは、より短い別名をネーミング・スペースに簡単に指定できます.

// MSDNMagNS.Examples and Pet definition...
// think “using Eg = MSDNMagNS.Examples;”
var Eg = MSDNMagNS.Examples;
var pet = new Eg.Pet(“Yammer”);
alert(pet);

MicrosoftAJAXライブラリのソースコードを見ると、ライブラリの著者が似たような技術を使ってネーミングスペースを実現していることがわかります.ここでは詳しく説明しません.必要なパートナーは自分で娘を探しに行きましょう.
以上が本文のすべてですが、javascriptの勉強に役立つことを願っています.