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