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).