Существуют ли какие-либо опасности / предостережения, которые следует учитывать при создании пространств имен JavaScript?
Наш проект довольно обширный, и мы запускаем много файлов JavaScript (более 20, ожидая большего). Невозможно обеспечить поддержку кода без использования пространств имен, поэтому мы реализуем их так:
var namespace1 = {
doSomething: function() {
...
},
doSomethingElse: function() {
...
}
}
А затем, чтобы создать иерархии, мы связываем их так:
var globalNamespace = {
functions1: namespace1,
functions2: namespace2,
...
}
Это отлично работает, но по сути это "хитрость", заставляющая JS вести себя так, как будто у него есть пространства имен. Хотя этот метод часто используется, кажется, что большая часть литературы посвящена тому, как это сделать, а не тому, есть ли какие-либо возможные недостатки. Поскольку мы пишем больше кода JS, это быстро становится неотъемлемой частью работы нашей системы. Поэтому важно, чтобы он работал без проблем.
Были ли ситуации, в которых эта "индуцированная" система пространств имен вызывала у вас ошибки или иным образом требовала особого внимания? Можем ли мы ожидать одинакового поведения во всех браузерах?