Funções Construtoras: o 'molde' para criar vários objetos iguais

Aprenda a criar funções que servem como plantas para gerar múltiplos objetos com as mesmas características.

Até agora, você viu objetos literais, que são ótimos para casos simples.
Mas e quando você precisa criar vários objetos parecidos (vários alunos, produtos, usuários)?

É aí que entram as funções construtoras.

Pense assim:

  • objeto literal = fazer um bolo manualmente, um por vez
  • função construtora = criar uma forma (molde) para repetir o bolo com variações

O que é uma função construtora?

É uma função usada como “fábrica de objetos”.

Exemplo:

function Produto(nome, preco) {
  this.nome = nome;
  this.preco = preco;
}

Essa função define o “formato” dos objetos Produto.


Criando objetos com new

Para usar a construtora, usamos a palavra-chave new:

const p1 = new Produto("Teclado", 200);
const p2 = new Produto("Mouse", 90);

console.log(p1.nome); // Teclado
console.log(p2.preco); // 90

Cada objeto criado terá suas próprias propriedades.


O que o new faz (em linguagem simples)

Quando você usa new:

  1. cria um objeto vazio
  2. liga esse objeto à função construtora
  3. define this para esse novo objeto
  4. retorna o objeto no final (automaticamente)

Por que usar função construtora?

  • evita repetir código
  • mantém padrão entre objetos parecidos
  • facilita manutenção e organização
  • prepara terreno para entender classes depois

Adicionando métodos na construtora (jeito inicial)

function Usuario(nome, email) {
  this.nome = nome;
  this.email = email;

  this.exibirResumo = function () {
    return `${this.nome} <${this.email}>`;
  };
}

Funciona, mas há um detalhe importante: esse método é recriado para cada objeto novo.
Mais adiante, você verá protótipos para compartilhar métodos de forma mais eficiente.


Convenção de nome

É comum escrever construtoras com inicial maiúscula:

  • Produto
  • Usuario
  • Pedido

Isso ajuda a identificar que a função deve ser usada com new.


Erros comuns de iniciantes

1) Esquecer o new

const p = Produto("Teclado", 200); // errado para uso construtor

Sem new, o comportamento não será o esperado.

2) Usar nomes confusos de parâmetros

Evite nomes genéricos demais.
Prefira nome, preco, estoque, etc.

3) Misturar responsabilidades

A construtora deve focar no “molde” do objeto.
Validações complexas e regras grandes podem ficar em funções separadas.


Resumo da lição

  • Função construtora é um molde para criar muitos objetos parecidos.
  • Usamos new para instanciar objetos.
  • this aponta para o objeto que está sendo criado.
  • É um passo importante antes de estudar protótipos e classes.