Classes em Javascript – Declaração

Boas práticas, Javascript 1 Reply

Quando eu falo classes, na verdade quero dizer “tipo classes”. O javascript é uma linguagem orientada a objetos, porém, baseia-se no princípio prototípico, no qual a herança é, na verdade, uma extensão de um protótipo original e trabalhamos diretamente com os objetos baseados nestes.

Existem diversos frameworks que possibilitam a utilização de classes no modelo padrão, porém, não focarei neles, apenas mostrando, aqui, como ficaria uma classe no modelo básico de protótipos.

Primeiramente, devemos compreender que OO baseia-se em alguns princípios:

  • Encapsulamento
  • Herança
  • Polimorfismo

No caso de linguagens OO difundidas como C# ou Java, temos a declaração de classes e tudo está organizado bonitinho apenas para ser utilizado, porém,  no javascript 1.7-1.8, as coisas são meio diferentes e a utilização é um pouco mais complicada (Irá melhorar nas próximas versões). Basicamente, para criarmos uma estrutura de classes devemos trabalhar com closures, da seguinte maneira:

Bom, nesta declaração, vemos que a estrutura formada é semelhante à classes, com encapsulamento no fechamento de variáveis e funções.

A herança está em dizer que o protótipo do filho é o mesmo que o protótipo do pai, criando uma especialização do pai no filho.

Já o polimorfismo não é muito “necessário”, já que o javascript tem tipagem dinâmica e fraca e podemos utilizar objetos e métodos em vários pontos, mas claro, poderia ser implementado através de algumas coisas um pouco mais complicadas que não vou falara agora, pra não perder a graça.

Para usar o código resultante, devemos instanciar um objeto da classe acima através do new e, por isso, é melhor colocar a primeira letra maiúscula nas classes pois, se você não usar o new para chamar uma classe, this passa a pertencer ao escopo acima, gerando o caos.

Enfim, é desta maneira que criamos, diretamente, classes em javascript, lembrando que as principais vantagens desta prática são a de não sujar o escopo global, deixando fechado em um objeto todos os métodos específicos de uma atividade, tendo um código mais limpo e organizado.

Até mais

One thought on “Classes em Javascript – Declaração

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *