Javascript Orientado a Objetos (uma nova visão)
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)
Deixe uma resposta Cancelar resposta
Categorias
Arquivos





Ó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!
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!
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
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!
ótimo post colorado… realmente OO é um futuro, muito mais prático e objetivo
abraços
Dae Meitcher!
Orientado a Objetos facilita muito, em todas as linguagens.
Obrigado pela visita.
Grande abraço!
Muito bom kuen!!
Parabéns pelo blog, mantenha a qualidade dos posts, está muito bom!