Existem três maneiras de definir classes em JavaScript.
A partir do uso de uma função
É muito provável que a via mais comum para criar uma classe seja uma função, afinal pode-se definir uma função normal e, então, criar um objeto usando a palavra-chave new. Para definir propriedades para um objeto, veja o trecho de código abaixo. Usando uma função consegue-se definir classes através do mecanismo de definir e declarar internamente um método em adição ao protótipo.
function Pessoa(_nome) {
this.Nome = _nome;
}
Para criar o objeto pessoa usando a recém-definida classe Pessoa, simplesmente declare-as e use a palavra-chave new para inicializá-las:
pessoa = new Pessoa("Pedro");
Usando objetos literais
Literais são maneiras menores para definir objetos e vetores em JavaScript. Aqui apresenta-se a mesma funcionalidade descrita nos exemplos passados, no entanto, desta vez, utiliza-se da sintaxe do objeto literal:
var carro = {
marca: "Ford",
modelo: "Ka",
getDetalhes: function () {
return this.marca + ' - ' + this.modelo;
}
}
Neste caso não é necessário, nem se pode, utilizar-se de uma instância da classe, pois esta já existe! Então, o problema reduz-se a tão-somente utilizar-se de tal instância.
carro.modelo = "Novo Ka";
alert(carro.getDetalhes());
Objetos em JavaScript
JavaScript é uma linguagem de programação orientada a objetos e, assim sendo, suas variáveis são dependentes dos objetos. Nas linguagens de programação orientadas a objetos, os programadores criam seus próprios objetos e tipos de variáveis. Um objeto é um tipo especial de variável que contém propriedades e métodos. Já viu-se até agora muitos tipos de variáveis, tais como vetor, string, etc. Em adição a estes objetos criados, você pode criar os seus próprios.
Sabe-se que JavaScript é uma Linguagem de Programação Baseada em Objetos. Uma Linguagem de Programação Baseada em Objetos permite que se defina objetos à vontade do programador. Abaixo temos scripts que mostrarão como declarar uma classe e como usar um objeto como uma instância de uma classe.
<html>
<head>
<script language="JavaScript">
function Carro()
{
var Marca = "Sem marca";
var Modelo = "Sem modelo";
this.SetMarca = SetMarca;
this.SetModelo = SetModelo;
this.ShowMarca = DisplayMarca;
this.ShowModelo = DisplayModelo;
function DisplayMarca(){
alert(Marca);
}
function DisplayModelo(){
alert(Modelo);
}
function SetMarca(_marca) {
Marca = _marca;
}
function SetModelo(_modelo) {
Modelo = _modelo;
}
}
var carro = new Carro();
carro.SetMarca("Ford");
carro.SetModelo("Ka");
carro.ShowMarca();
carro.ShowModelo();
</script>
</head>
</body>
</html>
A seguir vemos outro script que explica o método de declaração e os objetos
<html>
<body>
<script type="text/javascript">
carro = {
Marca : "Ford",
Modelo : "Ka",
Caracteristicas : ["Preto", 1.0, "2 portas"],
exibirDetalhes : function(){
alert("Marca: " + this.Marca + " - Modelo: " + this.Modelo)
}
}
carro.exibirDetalhes();
alert(carro.Caracteristicas[0])
var Pessoa = { nome : "Maria", idade : 30, sexo: "F" }
var mapa = {
cantoSuperiorEsquerdo : { x : 1, y : 1 },
cantoSuperiorDireito : { x : 10, y : 1 },
cantoInferiorEsquerdo : { x : 1, y : 10 },
cantoInferiorDireito : { x : 10, y : 10 }
}
alert(mapa.cantoInferiorDireito.x);
</script>
</body>
</html>
Não há a presença de classes, no entanto pode-se chamar os construtores que inicializarão as informações dos objetos, e estes podem atuar ainda como containers para as variáveis de classes e métodos. O objeto é uma instância de uma classe e um objeto é uma manifestação em tempo de execução de um tipo particular de classe.
Conclusão
Neste artigo nós vimos os conceitos básicos de classes e objetos em JavaScript. O conceito de Orientação a Objetos é muito importante nos dias de hoje e muitas linguagens de programação o implementa. Analise, veja e reveja os exemplos deste artigo. Até a próxima.
Outra leitura sobre o assunto pode ser visto no Artigo: Classes no Javascript.