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:
- O JavaScript cria um objeto vazio.
- A palavra-chave
thisaponta para esse novo objeto. - As propriedades são adicionadas ao objeto.
- 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ãostudent. Isso indica a outros desenvolvedores que devem usar a palavra-chavenew. - 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