Objetos em JavaScript

 

Um dos aspectos mais importantes para entender e saber trabalhar com JavaScript é a utilização de objetos. Esse é o assunto desse último post focado em pontos práticos sobre a linguagem JS. Fechando essa série de posts, uma nova série focada nas principais IDEs será iniciada.

O que são objetos em JavaScript

O termo objetos vem da nomeclatura do paradigma de orientação a objetos. Nesse que é atualmente o principal paradigma de programação das linguagens alto nível, tem-se dois grandes conceitos de abstração que definem completamente a forma de programar: Classes e objetos.

As classes são entidades abstratas de nível mais geral, enquanto os objetos são instâncias dessas classes, isto é, são entidades que possuem as características definidas pela classe, mas cujos valores podem ser diferentes para cada instância.

Em JavaScript, o conceito de objeto é muito parecido com o conceito de classe. A melhor forma de entender é por meio de um exemplo.

Na vida real, um carro é um objeto que possui propriedades (peso, altura, potência, etc) e métodos, que são ações associadas ao carro (acelerar, freiar, ligar, etc). Em javaScript, a analogia é a mesma. Objetos são estruturas de dados gerais que possuem propriedades e métodos, e que podem ser instanciadas para poderem ser usadas no contexto de um programa.

Atenção! Note a importante diferença entre objetos no sentido clássico (instância de uma classe) e em JavaScript. Em JavaScript, um objeto é uma estrutura que contém propriedades e
métodos, e que pode ser instanciada, ou seja, o conceito de objeto em JS está ligado ao conceito de clássico de Classe, e o conceito clássico de objeto está ligado às instâncias dos objetos em JS. Pode parecer meio confuso, mas com um pouco de prática tudo ficará claro.

Como declarar e usar métodos em JS

Existem três maneiras básicas para criar um objeto. Vamos partir direto para cada exemplo e logo em seguida destacar quando usar cada uma:

1 – Usando function

Essa primeira forma de definir um objeto é bastante auto explicativa. No exemplo definimos o objeto pessoa com quatro propriedades. Logo em seguida, criamos uma instância desse objeto e escrevemos algumas informações na tela.

function pessoa(nome,sobrenome,idade,profissao)
{
this.primeironome =nome;
this.ultimonome=sobrenome;
this.idade=idade;
this.profissao=profissao;
}

Mateus=new pessoa(“Mateus”,”Cabral”,27,”Vendedor de pastel”);
console.log(Mateus.primeironome + ” tem ” + Mateus.idade ” anos”);

Com esse código, a mensagem impressa será: “Mateus tem 27 anos. Fácil demais não é?

2 – Utilizando var

Nesse caso, praticamente vamos declarar uma nova variável usando a palavra reservada var, mas os valores vão ser vários, incluindo um método.

var forno =
{
material: “aço”,
ligar: function()
{
alert(“Ligar!!”);
}
desligar: function()
{
alert(“desligar!!”);
}
};
forno.ligar();

Nesse exemplo, repare que perdemos a abstração do objeto. Ao declarar uma variável já com certos valores definidos, é como se tivéssemos criado a instância de um objeto geral diretamente.

Nesse caso, criamos o objeto forno, que possui a propriedade material, que é “aço” e dois métodos, um para enviar a mensagem de alerta “Ligar!!” e outro para enviar a mensagem de alerta “Desligar!!”

3 – Usando var de forma indefinida

Nesse caso também declaramos uma variável usando var, mas dessa vez deixamos ela vazia. Logo em seguida, usamos os colchetes para atribuir propriedades e métodos a essa variável, transformando-a em um objeto.

var NovoObjeto = {};
NovoObjeto[‘proprieddade1’] = value;
NovoObjeto[‘proprieddade2’] = value;
NovoObjeto[‘metodo’] = function(){ /* function code here */ }

Quando usar cada método?

A primeira forma de declarar objetos deve ser usado quando você quiser ter várias instâncias de um mesmo objeto (várias pessoas, usando a analogia do exemplo). Nesse caso a forma de pensar se parece bastante com classe-objeto. A segunda maneira deve ser usada se você precisa de apenas um objeto daquele tipo,ou seja, não será necessário criar novas instâncias. Por fim, a última maneira deve ser usada sempre que vocẽ quer inicializar as propriedades do objeto dependendo de outras propriedades ou mesmo inputs de usuários e estruturas de decisão.

Agora, para fechar o conhecimento sobre objetos, você precisa saber como acessar as propriedades e métodos de um dado objeto. Isso é feito de forma muito intuitiva. Veja no exemplo.

Dado o objeto:

var pessoa = {nome:”Mateus”, sobrenome:”Cabral”, Idade:50, Profissao:”Vendedor de pastel”};

Para acessar as propriedades e métodos basta fazer:

nomeDoObjeto.nomePropriedadeOuMetodo;

Exemplos:
console.log(pessoa.nome);
console.log(pessoa.Profissao);

A saída paara essas duas linhas de código será:

Mateus
Vendedor de pastel

Considerações finais

Esse é o último post da série de JavaScript que aborda questões de sintaxe e funcionalidades práticas de linguagem. Como todo aprendizado em programação, a desenvoltura e confiança só vem com a prática. Portanto, continue os estudos e comece desde já a escrever suas próprias aplicações em JS.

Nos próximos posts, vamos abordar as diferentes IDEs JavaScript, acompanhe!