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();