最近リファクタリングをしているときに、名前空間の設定に出会い、知識を探し、専門家に相談し、自分の経験を書き留めました
ウィンドウが一流であることは誰もが知っていると思うので、ウィンドウについては書きません
1: トップレベルの
var ns = ns {};
ご覧のとおり、実際には、そのようなオブジェクトが存在しないことが判明した場合、 new Object()自動的に作成されます。存在する場合、このオブジェクトは直接使用されるため、説明しません。
2: 2 番目のレベル。もちろん、トップレベル ns の下に 2 番目のレベル、つまり
ns.ModuleClass = {};
ご覧のとおり、もちろん ns の下にクラスが作成されます。 、クラス内でメソッドの作成を続けることもできます。つまり、これは次のとおりです:
ns.ModuleClass.method1= function() {/ ///};
3: この com.qw のようなマルチレベル を実行する方法。ビュー、名前空間として設定したい、これにはそれぞれが必要です。名前空間を個別に設定するためにドット区切りの名前が使用され、オブジェクト
に設定されます。ウィンドウ:
function namespace(sSpace) ) {
var arr = sSpace.split('.'),i = 0,nameI ;
var root = window;
for (; nameI = arr[i ];) {
if (!root[nameI]) {
root[nameI] = {};
}
root = root[nameI];
}
return root;
}
これはまさに上で述べたアイデアであることがわかります。トラバーサルを使用して、分離されたすべてのオブジェクトをオブジェクトとして設定し、分離された各オブジェクトを独立して使用できるようにします。
4: よく使用される と、名前空間を簡単かつ迅速に設定するためのヒントをリストします
if (!window.ns) {
window.ns = {};
}
var ns; if( typeof ns == "未定義"){
ns = {};
}
if(typeof ns.ClassName == "未定義"){
ns.ClassName = {};
}