С учетом пространств имен ns
, используемых в двух разных файлах:
abc.js
ns = ns || (function () {
foo = function() { ... };
return {
abc : foo
};
}());
def.js
// is this correct?
ns = ns || {}
ns.def = ns.def || (function () {
defoo = function () { ... };
return {
deFoo: defoo
};
}());
Это правильный способ добавить def
к ns
в пространство имен? Другими словами, как объединить два вклада в пространство имен в javascript?
Если abc.js
предшествует def.js
Я бы ожидал, что это сработает. Если def.js
предшествует abc.js
, я бы ожидал, что ns.abc
не будет существовать, потому что ns
определено в то время.
Похоже, что должен существовать шаблон проектирования, чтобы исключить любую неопределенность выполнения включений с шаблоном пространства имен javascript.
Буду признателен за мысли и отзывы о том, как лучше всего поступить с такого рода «включением».
Спасибо за чтение.
Brian