私がそのような名前空間を持っているとしましょう:
var myNamespace = {
foo: function() {
},
bar: function() {
}
};
このコードをfoo
とbar
を別々に定義するファイルに分割する最良の方法は何ですか?
読み込み時間については心配していません。デプロイする前に、1つのファイルに連結して戻します。
各ファイルの開始時:
if(myNameSpace === undefined) {
var myNameSpace = {};
}
ファイル1:
myNamespace.foo = function()...
ファイル2:
myNamespace.bar = function()...
// File1:
// top level namespace here:
var myNamespace = myNamespace || {};
// File2:
myNamespace.foo = function() {
// some code here...
}
各ファイルで、次のパターンに従います。
(function(nameSpace) {
nameSpace.foo = function() { ... };
})(window.nameSpace = window.nameSpace || {});
このように、ロードの順序は重要ではありません。
次のような個別のファイルで簡単に定義します。
ファイル1:
var myNamspace = {};
ファイル2:
myNamespace.foo = function()...
ファイル3:
myNamespace.boo = function()...
ファイルを正しい順序でロードするようにしてください。
(function (NS) {
NS.Uber = function Uber() {
this.super = new NS.Super(); // yes, it works!
}; //
}(NS = NS || {}));
// ------------- other file -----------------
(function (NS) {
NS.Super = function Super() {
this.uber = new NS.Uber(); // yes, it will also work!
}; //
}(NS = NS || {}));
// -------------- application code ------------
var uber = new NS.Uber();
console.log(uber.super);
var super = new NS.Super();
console.log(super.uber);