Пространства имен JavaScript обычно имитируются с помощью объектов и замыканий и часто инициализируются самовыполняющейся функцией:
var myNamespace = (function () {
var _name = 'Bob';
return {
somePublicMethod: function () {
return 'Hello, ' + _name;
}
};
})();
alert(myNamespace.somePublicMethod());
К сожалению, если вы переопределите переменную пространства имен, предупреждений об этом нет.Что вы действительно можете сделать, так это проверить, была ли переменная пространства имен уже определена, и сгенерировать исключение или вызвать ошибку, если это было:
if (typeof myNamespace !== 'undefined') {
var myNamespace = (function () {
// ...
})();
}
else {
throw new Error("Whoops! myNamespace already exists.");
}