JavaScript: Objetos em JavaScript

Última atualização: 2026-10-13

Objetos são a estrutura de dados mais essencial em JavaScript. Pense neles como cartões de informações — a frente diz "Nome: Alice" e o verso diz "Idade: 20". Cada informação tem uma chave e um valor, formando um par chave-valor.

Objetos relacionados:Object.keys const class

1. Criando e Trabalhando com Objetos

Use chaves {} para escrever um objeto diretamente — esta é a abordagem mais comum:

HTML
<script>
const student = {
  name: "Alice",
  age: 20,
  major: "Ciência da Computação"
};
console.log(student);
</script>

Pares chave-valor são separados por dois-pontos, e os pares são separados por vírgulas. Uma vírgula trailing após o último par é permitida (e conveniente para adições futuras).

(2) Acessando Propriedades

Duas maneiras de acessar propriedades de objetos:

Método Sintaxe Quando Usar
Notação de ponto obj.nome Quando o nome da propriedade é um identificador válido
Notação de colchetes obj["nome"] Quando o nome contém caracteres especiais ou está armazenado em uma variável

A maior vantagem da notação de colchetes: você pode usar uma variável como chave.

HTML
<script>
const key = "name";
console.log(student[key]); // Mesmo que student["name"]
</script>

(3) Modificando e Adicionando Propriedades

Após criar um objeto, você pode modificar propriedades existentes ou adicionar novas a qualquer momento — mesmo que o objeto tenha sido declarado com const (const bloqueia a referência, não o conteúdo).

HTML
<script>
student.age = 21;          // Modificar
student.grade = "Júnior";  // Adicionar nova propriedade
console.log(student);
</script>

(4) Deletando Propriedades

Use o operador delete para remover uma propriedade completamente:

HTML
<script>
delete student.grade;
console.log(student);
</script>

Após a deleção, acessar aquela propriedade retorna undefined.

(5) Métodos

Uma função dentro de um objeto é chamada de método. Quando uma função se torna o valor de uma propriedade, o objeto pode "fazer coisas":

HTML
<script>
const dog = {
  name: "Rex",
  bark() {
    return "Au! Eu sou " + this.name;
  }
};
console.log(dog.bark());
</script>

(6) A Palavra-chave this

this se refere ao "objeto atual" — quem chama o método, this é aquele objeto. Este é um dos conceitos mais complicados do JavaScript: se um método for extraído e chamado separadamente, this não apontará mais para o objeto original.

HTML
<script>
const bark = dog.bark;
console.log(bark()); // this não aponta mais para dog — pode ser window ou undefined
</script>

(7) Construtores

Quando você precisa criar múltiplos objetos com a mesma estrutura, use uma função construtora:

HTML
<script>
function Person(name, age) {
  this.name = name;
  this.age = age;
  this.sayHi = function() {
    return "Olá, eu sou " + this.name;
  };
}

const p1 = new Person("Bob", 25);
const p2 = new Person("Charlie", 30);
console.log(p1.sayHi());
console.log(p2.sayHi());
</script>

new faz três coisas: cria um objeto vazio → define this para apontar para ele → retorna o objeto.

(8) Object.keys / values / entries

Esses três métodos estáticos retornam arrays das chaves, valores e pares chave-valor de um objeto:

Método Retorna
Object.keys(obj) ["name", "age"]
Object.values(obj) ["Alice", 20]
Object.entries(obj) [["name","Alice"], ["age",20]]

Muito útil para iterar sobre objetos: Object.keys(obj).forEach(key => ...).


▶ Exemplo: Criando um Objeto de Aluno e Exibindo Informações

▶ Experimente

▶ Exemplo: Notação de Ponto vs Notação de Colchetes

▶ Experimente

▶ Exemplo: Adicionando, Modificando e Deletando Propriedades Dinamicamente

▶ Experimente

▶ Exemplo: Construtores e Object.keys/values/entries

▶ Experimente

Objetos relacionados:Object.keys const class

❓ Perguntas Frequentes

P Posso modificar propriedades de um objeto declarado com const?
R Sim. const bloqueia a referência da variável (significando que ela sempre aponta para o mesmo objeto), não o conteúdo do objeto. Você pode adicionar, modificar e deletar propriedades livremente — mas não pode reatribuir com obj = {}.
P Quando devo usar notação de colchetes em vez de notação de ponto?
R Quando o nome da propriedade contém espaços ou hífens (como "home-city"), ou quando o nome está armazenado em uma variável para acesso dinâmico, você deve usar colchetes. Para tudo mais, a notação de ponto é mais limpa e preferida.
P O que acontece se eu esquecer new com um construtor?
R this apontará para o objeto global (ou undefined no modo estrito), fazendo com que as propriedades vão para o lugar errado ou lancem um erro. Esta é uma armadilha clássica — a sintaxe class do ES6 lida com isso automaticamente.

📖 Resumo


📝 Exercícios

  1. Crie um objeto livro com propriedades titulo, autor e ano, além de um método getSummary() que retorna uma string como "titulo por autor, publicado em ano".
  2. Escreva um construtor Carro(marca, modelo, ano), use-o para criar 3 carros, depois use Object.keys para listar todos os nomes de propriedades de um carro.
  3. Adicione dinamicamente um método dirigir() a qualquer um dos carros acima (retorna "marca modelo está dirigindo"), depois chame-o. Observe como this se refere ao objeto atual dentro do método.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%