Buenas pessoal, beleza?
Como havia escrito, editado, no post anterior, vou abordar primeiramente uma forma diferente de programar javascript.
Vou começar a forma “feia”, que não devem ser aplicada pela falta de segurança e de acessibilidade que possa ter.

Este post se direciona para o pessoal que já trabalha ou já convive com o JavaScript, portanto não será abordada uma didatica para leigos no assunto. Com este post pretendo debater com os leitores uma forma diferente de escrever o javascript, que pelo menos eu sempre escrevi.

Bom, o assunto de hoje é Javascript Orientado a Objetos.
Muitos jogarão pedras “Javascript não é Orientado a Objetos”. Concordo, não é.

Estou aqui para abordar uma nova visão de como escrever um código javascript, com os conceitos de OO, que facilitará no futuro a manutenção do código, que ficará mais simples e visivelmente mais atraente.

Vamos então à declaração da “Classe” javascript:

var ClasseJS = function() {
	// métodos ou propriedades privados
	var var_privada = "privada",

	fn_privada = function(parametro) {
		alert(parametro);
	};

	return {
		// métodos públicos
		fn_publico : function() {
			fn_privada(var_privada); // retorna "privada"
			return false;
		},
		fn_segunda : function() {
			// comandos
		}
	};
};

ClasseJS.instance = null,

ClasseJS.getInstance = function() {
if (!ClasseJS.instance)
	ClasseJS.instance = new ClasseJS();

	return ClasseJS.instance;
};

Vemos que como qualquer Classe, seu nome é descrito com a primeira letra em maiúsculo e seguindo o padrão do camelcase.

Dentro da declaração dos métodos e propriedades privadas, devemos separar as declarações, propriedades e métodos, por uma virgula, somente o último elemento poderá ter o ponto e virgula, pois senão dará erro de interpretação.

Reparem que dentro do return{} eu não posso declarar nenhuma propriedade — dará erro de interpretação, estas deverão ser declaradas ou na área de propriedades privadas ou dentro do escopo de um método. — e os métodos seguem um estilo JSON, onde ao invés do sinal de igual (=) devemos utilizar dois pontos (:) para definir os métodos. Também podemos ver que, como na área de privados, todos os métodos são separados por virgula, porém o último elemento não poderá utilizar o ponto e virgula.

Chegamos a parte de instanciamento da Classe, mas isso será visto na integração.

Agora a pergunta: “Como faço pra isso funcionar no meu HTML?”. Respondo com o código abaixo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="pt" xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt">
	<head>
		<title>JavaScript Orientado a Objetos</title>
		<script type="text/javascript" src="ClasseJS.js"></script>
	</head>

	<body>
		<a href="#" onclick="ClasseJS.getInstance().fn_publico();">TESTE</a>
	</body>
</html>

Agora sim, tudo prontinho. Viram como estou instanciando a classe na ação de “onclick”?. Se não instanciarmos a Classe quando quisermos utilizar um método será gerado um erro.

Bom pessoal, não tem nenhum mistério nessa forma de escrever o nosso js, não? Acredito que desta forma o código fica mais simples e padronizado, sem falar que olhando parece algo muito mais elegante.

Qualquer dúvida, poste um comentário que terei o prazer de responder.

Grande abraço e até o próximo post.

 

7 Responses to Javascript Orientado a Objetos (uma nova visão)

  1. Lucas Nunes disse:

    Ótimo post!

    Na empresa em que trabalho já utilizamos essa visão de Orientação a Objeto p/ JS. Como tu mesmo disse, o código fica mais elegante e – pelo menos ao meu ver – bem mais simples/agradável de se trabalhar/estudar.

    Parabéns!

    • Anderson Koester disse:

      Obrigado pelo comentário Lucas.
      Realmente é uma nova visão.
      Fica melhor ainda utilizando jQuery, que simplifica mais o código.

      Nos próximos posts irei escrever um pouco mais sobre isso.

      Grande abraço!

  2. Rafael Moterle disse:

    Excelente post !!!

    Na empresa em que trabalho também já utilizamos essa visão de Orientação a Objeto p/ JS. Muito bom mesmo

    ;D

    • Anderson Koester disse:

      Grande Rafael!

      Excelente saber que pessoas/empresas adotam este tipo de programação.
      Creio que fica muito mais fácil para um outro programador pegar o código e entender de forma mais simples um código mais organizado.

      Abração!

  3. ótimo post colorado… realmente OO é um futuro, muito mais prático e objetivo

    abraços

  4. Juscélio disse:

    Muito bom kuen!!
    Parabéns pelo blog, mantenha a qualidade dos posts, está muito bom!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>