Programando em Javascript OO
Este post inicia uma série de posts sobre Javascript onde vou abordar algumas técnicas para ajudar a desenvolver códigos de javascript com qualidade. Essa série será iniciada com este artigo sobre orientação a objetos em javascript nos posts seguintes falarei sobre tratamento de exceções, implementação de um Map, implementação de um List, framework prototype e ferramentas de desenvolvimento.
Javascript sempre foi uma linguagem muito mal vista por grande parte dos desenvolvedores porém grande parte desse ‘ódio’ se deve ao desconhecimento da linguagem, tentando mudar um pouco essa visão vamos começar a ver como podemos desenvolver em Javascript usando orientação a objetos.
Criando componentes em javascript usando oo podemos ter códigos bem isolados evitando problemas de namespaces muito comum em aplicações que precisam de muito javascript, podemos ter componentes reutilizáveis, além de claro ter um código mais simples de entender e menos macarrônico.
Para explicar os conceitos criei um exemplo que ilustra diversos conceitos, esse exemplo é um janela criada com um div usando HTMLDOM. Vamos aos conceitos:
- Variáveis
-
privadas: são declaradas com a palavra reservada var dentro do objeto e só podem ser acessadas por funções privadas e métodos privilegiados.
- Propriedades
- públicas: são declaradas com this.nomeDoAtributo e podem ser lidas/gravadas de fora do objeto.
- protótipos: são definidas usando NomeDaClasse.prototype.nomeDaPropriedade = algumValor
-
estáticas: NomeDaClasse.nomeDaPropriedade = algumValor
- Funções
-
privadas: são declaradas dentro do construtor do objeto ou usando(var functionName = function(){…}) e só podem ser chamadas por métodos privilegiados.
- Métodos
-
públicos: são definidos usando NomeDaClasse.prototype.nomeDoMetodo = function(){…} e podem ser chamados de fora do objeto.
-
privilegiados: são declarados com this.nomeDoMetodo = function(){…} e podem ser chamados por códigos externos ao objeto.
Veja aqui o código de um exemplo que aborda todas essas possibilidades, coloquei comentários em todo o código. Algumas parte usei HTMLDOM mas não expliquei o funcionamento mas exmplicarei em um próximo post. Evitei colocar coisas que estivessem fora do escopo deste assunto por isso o exemplo está bem “feio” para facilitar quem por ventura queria copiar esse código para usar em seus sistemas.
Boas referências sobre este assunto você encontra em: w3schools e Mozilla Developer Center e o código completo do exemplo abordado aqui
Não é fácil aprender esta linguagem. Pelo menos para mim que sou principiante, mas acho fundamental para qualquer criador de sites. VOU CHEGAR LÁ.
Obrigado
Po, cara muito bacana!
tou aguardando o resto do “Tutorial”
Se puder me passa os materiais que vc tirou como referencia para esse Tuto !
vlw !