A linguagem
JavaScript, geralmente, é usada de forma estruturada, alguns provavelmente acreditam que essa seja a única forma (paradigma) possível, mas também, podemos programar de forma orientada a objetos (OO) em JavaScript.
A programação OO em JavaScript é um pouco diferente do que estamos acostumados. Diferente de
Java,
PHP,
Ruby e outras, JavaScript não têm uma definição para uma classe, mas possui um recurso chamado Prototype (não confundir com o Framework), que podemos utilizar para programar de forma OO.
Vamos a um exemplo simples. Vou criar uma "classe" Pessoa. Pode parecer estranho, mas acredite, podemos escrever uma "classe" desse jeito:
function Pessoa( nome, idade ) {
this.nome = nome;
this.idade = idade;
this.digaOi = function() {
alert( "oi" );
}
}
Sim, você deve ter percebido que isso é uma função, mas podemos criar uma instância dela através do operador
new (como nas outras linguagens) e simular uma classe, assim:
var eu = new Pessoa( "paulo", "25" );
E agora, que temos uma instância de "Pessoa", podemos ter acesso aos atributos e métodos de um jeito bem intuitivo:
alert( eu.nome );
eu.digaOi();
Com isso já temos uma "classe" e um objeto.
Nos próximos capítulos, vamos ver com usar encapsulamento e herança.