Javascript função namespace.

Abaixo estendemos Object com uma função estática para uso de namespaces em javascript.

 

<html>
	<header>
		<script type="text/javascript">
			Object.namespace = function(root, namespace){
				var parts = namespace.split('.');
				var object = {};

				if(typeof root[parts[0]] == 'undefined')  {
					root[parts[0]] = object;
				} else {
					object = root[parts[0]];
					root[parts[0]] = object;
				}

				for(var i = 1, max = parts.length; i < max; i++){
					if(typeof object[parts[i]] == 'undefined') object[parts[i]] = {};
					object = object[parts[i]];
				}
				
				return object;
			};


			window.onload = function(){
				// root
				var Motta = {};

				// adiciona namespace já existente
				Motta.view = {};
				Motta.view.frm = {};
				Motta.view.utils = {};
				Motta.view.utils.funcoes = {nome: "funcoes", quantidade: 1};

				// pega a referencia a namespace existente.
				var funcoes = Object.namespace(Motta, 'view.utils.funcoes');

				// cria e atribui o objeto a uma variável externa.
				var variaveis = Object.namespace(Motta,'view.utils.variaveis');
				variaveis.numericas = {nome: "numericas", quantidade: 2}
				variaveis.numericas.valor = 1;
				
				
				// adiciona namespace já existente
				variaveis.flutuante = {nome: "flutuante", quantidade: 3};

				document.write(Motta);
			}
		</script>
	</header>
	<body>
	</body>
</html>

Na figura abaixo segue a estrutura do objeto criado. Visualizado na ferramenta de desenvolvimento do Google Chrome.

 

 

Anúncios
Esta entrada foi publicada em Javascript e AJAX com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s