Pesquisar este blog

terça-feira, 7 de julho de 2015

JavaScript e OO: Criando objetos

Embora seja uma linguagem fracamente tipada, com o passar do tempo o JavaScript vem ganhando cada vez mais melhorias e funcionalidades. A tipagem desta linguagem facilita a manipulação de suas variáveis e objetos, visto que estes podem ser criados dinamicamente em tempo de execução.
Na maioria das linguagens orientadas a objeto, como Java/C#/C++, o processo de criação de objetos consiste em definir, criar e instanciar uma classe. 
Com o JavaScript não é muito diferente! A vantagem deve-se ao fato de o JavaScript não precisar ser compilado antes da interpretação do script.
Caso fôssemos criar um objeto "Pessoa", utilizando a linguagem C# por exemplo,  o código fonte seria algo mais ou menos assim:
public class Pessoa
{
  public string Nome { get; set; }
  public int Idade { get; set; }
}
No caso do JavaScript, a implementação desta classe poderia ser feita (de modo simplista), da seguinte maneira:
var pessoa = { 
    Nome: ""
  , Idade: 0
};
Devido ao JavaScript ser fracamente tipado, os campos/propriedades da minha classe "pessoa", são inicializados para que os mesmos "assumam" um tipo. No caso da classe C#, os tipos são pré definidos no momento da criação da classe. Para acessar um atributo de minha classe "Pessoa", é necessário primeiramente instanciar a classe e efetuar a chamada através do objeto "p" criado:
Pessoa p = new Pessoa();
//Acesso e imprimo o atributo nome do meu objeto "p"
Console.WriteLine(p.Nome);
Já para o JavaScript, existem outras maneiras de se acessar as propriedades de objetos, chamadas também de notações. Abaixo demonstro duas delas:

1 - Sintaxe de ponto (dot notation): 
A propriedade é acessada assim como no C#, objeto.propriedade:
pessoa.nome = "Bruno";
2 - Sintaxe de colchetes (bracket notation): 
O acesso a propriedade do objeto lembra o acesso a valores em matrizes, objeto["propriedade"]:
pessoa["nome"] = "Bruno"; 
Outro ponto interessante que faz do JavaScript uma linguagem poderosa, é o fato de se poder criar propriedades para objetos existentes em tempo de execução. Nosso objeto "pessoa" até o momento possuia duas propriedades: "nome" e "idade". Caso seja necessário acrescentar uma nova propriedade a este objeto, como por exemplo "peso", basta "acessar a nova propriedade":
pessoa.peso = 70; 
Feito isso, o objeto "pessoa", passa a ter também a propriedade peso. Incrível, não? Para quem desejar se aprofundar mais, encontrei um link interessante bem aqui

Nenhum comentário:

Postar um comentário