Esse artigo faz parte da revista Java Magazine edição 61. Clique aqui para ler todos os artigos desta edição

AN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: red; FONT-FAMILY: Verdana; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">

N-US style="FONT-SIZE: 10pt; COLOR: windowtext; FONT-FAMILY: Verdana"> TEXT-ALIGN: left" align=left>De que se trata o artigo:

Introdução aos conceitos de orientação a objeto no Javascript, explicando como funciona o tipo específico de orientação a objetos com protótipos.

 

Para que serve:

Entender como funciona os conceitos básicos da orientação a objetos como herança, encapsulamento, sobrecarga e sobrescrita no tipo de linguagem com Protótipo. Entender o funcionamento de características que simulam herança acidental e o caráter dinâmico e fracamente tipado.

 

Em que situação o tema é útil:

Quando precisamos manipular um Framework Ajax estendendo suas funcionalidades ou melhorando objetos existentes no Javascript, como a adição de funções no Array ou String que existem em linguagens OO tradicionais.

 

Orientação a Objetos no Javascript:

Abordamos nesse artigo alguns conceitos básicos desconhecidos da grande maioria dos desenvolvedores web, que é a orientação a objetos no Javascript.

Analisaremos os conceitos de herança, polimorfismo, agregação e demais conceitos comuns em linguagens conhecidas como Java, mas pelo aspecto de protótipos que o Javascript implementa. Veremos funcionalidades acidentais que simulam herança e construção de objetos.

 

Nesse artigo estudaremos como está fundamentada a orientação a objetos no Javascript e como entender a sintaxe dentro desse conceito. Todos os Frameworks Ajax modernos estão codificados com a orientação a objetos como base. Portanto, para a extensão segura das funcionalidades existentes nesses Frameworks é necessário um conhecimento sólido.

O Javascript é uma linguagem dinamicamente tipada, suportando apenas late binding (ligação tardia), onde o interpretador resolve o tipo em última hora e em tempo de execução. Também é fracamente tipada (weakly typed), pois permite misturar valores de diferentes tipos livremente, fazendo sempre as conversões necessárias ao invés de gerar erros. Em oposição, a linguagem Java é estaticamente tipada (exige declarações de tipos) e fortemente tipada (restringe as operações aplicáveis a cada tipo e às formas de combiná-los, exigindo que a maioria das conversões sejam explícitas).

Os tipos do Javascript podem ser redefinidos em tempo de execução, modificando seu comportamento ou adicionando e removendo propriedades.

O Javascript é uma linguagem multiparadigma, possui características funcionais e é orientada a objetos. Mas a orientação a objetos no Javascript é de um tipo especial, conhecida como Prototype-based (baseado em protótipos). Protótipos são objetos que servem como molde ou base para outros objetos, no Javascript não existe a entidade “classe”. A reutilização do comportamento, que em linguagens Class-based (baseados em classes) é feita via herança, em Javascript é realizada através de um processo de clonagem dos objetos existentes.

Um fator simples, mas importante que geralmente provoca confusão é que por não ter classes, a declaração no Javascript já é sua inicialização. A partir do momento que houve a definição, o objeto ou variável já pode ser utilizado independente se recebeu um valor ou foi instanciada.

Os objetos no Javascript assim como o PHP são do tipo Array-based (baseado em Arrays), definidos pela especificação como um conjunto de propriedades que podem receber objetos, tipos primitivos ou funções que representam métodos.

O Javascript possui sobrescrita, mas não possui sobrecarga, de forma que se uma função for definida como na Listagem 1 (com dois métodos de mesma assinatura), diferenciando apenas os argumentos recebidos, vale o último declarado. Uma chamada à função ...

Quer ler esse conteúdo completo? Tenha acesso completo