Для пространств имен 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.
Я был бы признателен за мысли и материалы о том, как лучше всего пойти на такое "включение".
Спасибо за чтение.
Брайан
