Na vida real, um carro é um objeto.
Objetos, Propriedades e Métodos da Vida Real
Um carro tem propriedades como peso e cor e métodos como iniciar e parar:
Objeto |
Propriedades |
Métodos |
carro |
carro.nome = Fiat carro.modelo = 500 carro.peso = 850kg carro.cor = branco |
carro.ligar() carro.dirigir() carro.freiar() carro.parar() |
Todos os carros têm as mesmas propriedades, mas os valores das propriedades diferem de carro para carro.
Todos os carros têm os mesmos métodos, mas os métodos são diferentes em seu funcionamento com cada carro, e são realizados em diferentes momentos.
Sobre Objetos
Variáveis são contêineres para valores de dados.
O código a seguir atribui um valor simples (“Fiat”) a uma variável chamada carro:
var carro = "Fiat";
Objetos também são variáveis. Mas os objetos podem conter muitos valores.
Este código atribui muitos valores (Fiat, 500, branco) a uma variável chamada carro:
var carro = {tipo:"Fiat", modelo:"500", cor:"branco"};
Os valores são declarados em pares de nomes identificadores e valores separados por dois pontos.
Objetos JavaScript são contêineres para propriedades ou métodos.
Definição de Objeto
Objetos são blocos de dados criados na memória, contendo propriedades e métodos, e apontados pelas variáveis declaradas no código.
As propriedades do objeto são variáveis e enquanto métodos são funções, ambos pertencentes ao objeto.
Você define e cria um objeto com um literal de objeto:
var pessoa = {primeiroNome:"João", ultimoNome:"José", idade:50, corOlhos:"blue"};
Espaços e quebras de linha são ignorados pelo interpretador. A definição de objeto pode abranger várias linhas.
var pessoa = {
primeiroNome : "João",
ultimoNome : "José",
idade : 50,
corOlhos : "blue"
};
Propriedades de Objetos
O nome: pares de valores em objetos JavaScript são chamados de propriedades :
Propriedade |
Valor da propriedade |
primeiro nome |
João |
último nome |
Corça |
era |
50. |
cor dos olhos |
Azul |
Acessar as Propriedades do Objeto
Você pode acessar as propriedades do objeto de duas maneiras:
nomeObjeto.propertyName
ou
nomeObjeto["propertyName"]
Exemplo 1
pessoa.ultimoNome;
Exemplo2
pessoa["ultimoNome"];
Métodos de Objetos
Objetos também podem ter métodos.
Métodos são ações que podem ser executadas em objetos.
Os métodos são armazenados em propriedades como definições de função.
Propriedade |
Valor da propriedade |
primeiro nome |
João |
último nome |
Corça |
era |
50. |
cor dos olhos |
azul |
nome completo |
function () {retorna this.primeiroNome + "" + this.ultimoNome;} |
Métodos são propriedades declaradas como funções nos objetos.
var pessoa = {
primeiroNome : "João",
ultimoNome : "José",
id : 5566,
nomeCompleto : function() {
return this.primeiroNome + " " + this.ultimoNome;
}
};
this em Funções
Em uma definição de função, a referência this refere-se ao objeto proprietário da função.
No exemplo acima, this é o objeto de pessoa que possuidora da função nomeCompleto.
Em outras palavras, this.primeiroNome significa a propriedade primeiroNome deste objeto.
Leia mais sobre a palavra-chave this no capítulo A Palavra-Reservada This.
Acessando aos Métodos dos Objetos
Você executa um método de um objeto com a seguinte sintaxe: nomeObjeto.nomeMetodo().
// var nomeVariavel = nomeObjeto.nomeMetodo()
var nome = pessoa.nomeCompleto();
O método sem os parênteses () retorna o endereço da função.
var nome = pessoa.nomeCompleto;
Não declare textos, números e booleanos como objetos!
Quando uma variável JavaScript é declarada com a palavra-chave " new", a variável é criada como um objeto:
var x = new String(); // Declares x as a String object
var y = new Number(); // Declares y as a Number object
var z = new Boolean(); // Declares z as a Boolean object
Evite instanciar com o new objetos String, Number e Boolean. Eles complicam seu código e diminuem a velocidade de execução.
Você aprenderá mais sobre objetos posteriormente neste tutorial.
Teste-se com Exercícios
Alerta "João" extraindo informações do pessoa objeto.
var pessoa = {
primeiroNome: "João",
ultimoNome: "José"
};
alert();