Может ли кто-нибудь объяснить пространство имен в 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 () { /*...*/ };