Может ли кто-нибудь объяснить пространство имен в javascript с примером?

Я немного запутался с пространствами имен в javascript. Могу ли я работать с одинаковыми именами?

Спасибо

Ответ 1

Официальной концепции пространства имен в Javascript нет, как в С++. Однако вы можете обернуть функции в объектах Javascript для эмуляции пространств имен. Например, если вы хотите написать функцию в "пространстве имен" под названием MyNamespace, вы можете сделать следующее:

var MyNamespace = {};

MyNamespace.myFunction = function(arg1, arg2) {
    // do things here
};

MyNamespace.myOtherFunction = function() {
    // do other things here
};

Затем, чтобы вызвать эти функции, вы должны написать MyNamespace.myFunction(somearg, someotherarg); и MyNamespace.myOtherFunction();.

Я также должен упомянуть, что в Javascript существует много разных способов создания пространств имен и классов. Мой метод является лишь одним из тех, что многие.

Для более подробного обсуждения вы можете также взглянуть на этот вопрос.

Ответ 2

В настоящее время никакие реализации JavaScript не поддерживают пространства имен, если вы ссылаетесь на пространства имен ECMAScript 6/JavaScript 2.

Если вы имеете в виду, как сегодня выполняется пространство имен, это просто использование одного объекта и установка каждого метода, который вы хотите определить на нем.

var myNamespace = {};
myNamespace.foo = function () { /*...*/ };
myNamespace.bar = function () { /*...*/ };