Construtores em JavaScript

Criar objetos um por um é lento. Se você precisar de dez alunos com as mesmas propriedades, perderá tempo escrevendo o mesmo código repetidamente.

O JavaScript resolve isso com Funções Construtoras (Constructor Functions).

Pense em um construtor como uma planta (blueprint). Uma planta de uma casa não é a casa em si, mas você a utiliza para construir muitas casas.

Como funciona:

Um construtor é uma função especial. Você usa a palavra-chave new para criar objetos a partir dele.

Exemplo:

function Student(name, age, city) {
    this.name = name;
    this.age = age;
    this.city = city;
}

const student1 = new Student("John", 21, "Chennai");
const student2 = new Student("David", 22, "Madurai");

Por que usar isso?

  • Economiza tempo.
  • Evita a repetição de código.
  • Cria uma estrutura padronizada para seus dados.

O papel do this:

Dentro de um construtor, a palavra this refere-se ao novo objeto que você está criando.

Se um professor diz "minha sala de aula", a palavra "minha" aponta para aquele professor específico. No código, this.name aponta para o nome do objeto específico que você acabou de criar.

O que acontece quando você usa o new?

Quando você executa const emp = new Employee("John", 50000), quatro etapas ocorrem:

  1. O JavaScript cria um objeto vazio.
  2. A palavra-chave this aponta para esse novo objeto.
  3. As propriedades são adicionadas ao objeto.
  4. O objeto é retornado para você.

Adicionando Ações:

Objetos podem fazer mais do que apenas armazenar dados. Eles podem realizar ações. Na programação, essas ações são chamadas de métodos (methods).

Exemplo:

function Laptop(brand, ram) {
    this.brand = brand;
    this.ram = ram;
    this.showDetails = function() {
        console.log(this.brand, this.ram);
    };
}

O objeto Laptop agora contém dados e uma função para exibir esses dados.

Boas Práticas:

  • Sempre use a primeira letra maiúscula para um construtor. Use Student, não student. Isso indica a outros desenvolvedores que devem usar a palavra-chave new.
  • Sempre use a palavra-chave new. Se você esquecê-la, a função agirá como uma função normal e quebrará seu código.

Comparação:

Literais de Objeto (Object Literals):

  • Bom para um único objeto.
  • Simples e rápido.
  • Sem uma planta (blueprint).

Funções Construtoras (Constructor Functions):

  • Bom para muitos objetos.
  • Reutilizável e organizado.
  • Utiliza uma abordagem de planta (blueprint).

Fonte: https://www.w3schools.com/js/js_object_constructors.asp Fonte: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor Post completo: https://dev.to/annapoo/constructor-in-javascript-4nbm