By: Eduardo Almeida- 13/10/2011
Em: Client side, Ambientes & Linguagens - Comentários: 2 - Leituras: 251
Após fazer algumas abordagens mais simples à alguns conceitos de Orientação a Objeto em Javascript, hoje irei ensinar como trabalhar com namespaces.
Registrar um namespace em javascript, pode ser feito de várias formas possíveis, porém inicialmente irei abordar a forma, que no meu ponto de vista, é a mais fácil e prática.
Para registrar um namespace, basta criar uma variável atribuindo ela à ela mesmo e usando o operador lógico || e logo após {} que definirá a variável como um objeto caso ela esteja indefinida.
//Namespace Carros
var Carros = Carros || {};
Carros.quantidade = 3;
alert(Carros.quantidade); // mostrará na tela o valor 3
Agora que temos o namespace "Carros" criado, vamos fazer uma abordagem um pouco mais complexa ao objeto criando "sub" namespaces. Vejamos o exemplo:
//Namespace HondaCivic
Carros.HondaCivic = {};
Carros.HondaCivic.ano = 2011;
Carros.HondaCivic.cor = "preto";
//Namespace Camaro
Carros.Camaro = {};
Carros.Camaro.ano = 2010;
Carros.Camaro.cor = "amarelo";
//Namespace AudiTT
Carros.AudiTT = {};
Carros.AudiTT.ano = 2010;
Carros.AudiTT.cor = "cinza";
alert(Carros.HondaCivic.cor); // mostrará na tela o valor preto
alert(Carros.HondaCivic.ano); // mostrará na tela o valor 2011
function regNS(ns)
{
var nameSpaces = ns.split(".");
var raiz = window;
for(var i=0; i < nameSpaces.length; i )
{
if(typeof raiz[nameSpaces[i]] == "undefined")
raiz[nameSpaces[i]] = new Object();
raiz = raiz[nameSpaces[i]];
}
}
Para demonstrar o quanto o Javascript é flexível, vou fazer uma demonstração utlizando duas abordagens diferentes de de criar namespaces.
Primeiro, irei criar o namespace Carros conforme no início deste post
//Namespace Carros
var Carros = Carros || {};
Carros.quantidade = 3;
Depois, irei criar o namespace Casa.Garagem utilizando a função regNS que criamos acima
regNS("Casa.Garagem");
No final, podemos simular herança, atribuindo o namespace Carros ao namespace Casa.Garagem.Carros
Casa.Garagem.Carros = Carros; alert(Casa.Garagem.Carros.quantidade); // mostrará na tela o valor 3
" eduardo, você demonstrou a atrubuicao de namespace
Casa.Garagem.Carros = Carros;
pergunto, caso eu construa o namespace Carros.HondaCivic como no inicio do exemplo, isto iria funcionar?
alert(Casa.Garagem.Carros.HondaCivic.ano) "
Por: Marcos. Em: 13/10/2011
" Caro Marcos, com certeza irá funcionar, assim como os com os outros "Carros" "
Por: Eduardo Almeida. Em: 20/10/2011
Desde de 1998 ...
a WEB2 vêm desenvolvendo sites, softwares, implementando ambientes servidores,
prestando consultoria na área de segurança para diversas empresas
como bancos, imobiliárias, agências, cartórios, escritórios de advocacia e até
empresas multi-nacionais. Trabalhamos para criar
experiências intuitivas para os usuários, desenhar interfaces ricas e
elegantes, desenvolver aplicativos úteis, consolidar sites e produtos
que ajudamos a criar, seja desenvolvendo, analisando ou melhorando sua performance. Resumindo, construímos "business" para internet.
Copyright © 2012 WEB2 Soluções LTDA. CNPJ: 14.832.733/0001-05.