JavaScript – usando namespaces

Coleção Filhos do JavaScript | Este artigo

Você pode simular namespaces como visto em outras linguagens criando objetos JavaScript. Isso ajudará a estruturar seu aplicativo e reduzirá as colisões de nomes.

Criação de um namespace de empresa

Para criar o seguinte namespace, você pode usar duas notações

MyCompany.MyApp.MyModule.myVariable
MyCompany.MyApp.MyModule.myFunction()

Notação literal

Usando essa notação, primeiro você cria o objeto e, a seguir, começa a criar as propriedades conforme avança.

var MyCompany = {
MyApp : {
MyModule: {
myVariable
: 1,
myFunction
: function() { return 2;}
}
}
}
console
.log(MyCompany.MyApp.MyModule.myVariable) // 1
console
.log(MyCompany.MyApp.MyModule.myFunction()) // 2

Notação de duas etapas

Usando essa notação, você cria objetos vazios e, no último nível, usa um objeto literal.

var MyCompany = {};
MyCompany.MyApp = {};
MyCompany.MyApp.MyModule = {
myVariable
: 1,
myFunction
: function() { return 2;}
};
console
.log(MyCompany.MyApp.MyModule.myVariable) // 1
console
.log(MyCompany.MyApp.MyModule.myFunction()) // 2

Permitindo extensibilidade

Os desenvolvedores de bibliotecas às vezes precisam lidar com casos de uso especiais. Neste caso, queremos começar de uma definição de objeto anterior (não queremos nos preocupar com a ordem dos scripts ou queremos coexistir com versões anteriores). Se você precisa desse comportamento, pode alterar a linha inicial para

var MyCompany = MyCompany || {};

Aproveitando os objetos falsos e a avaliação de comparação rápida do JavaScript, esse código usa uma definição anterior de MyCompany ou cria uma nova se MyCompany for avaliada como falsa (string vazia, o número 0, nulo, NaN, um booleano falso ou indefinido).

Coleção Filhos do JavaScript | Este artigo