de 𝗢𝗯𝗷𝗲𝗰𝘁𝗼𝘀 𝗲𝗺 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁
Você precisa criar muitos objetos do mesmo tipo. O JavaScript oferece várias maneiras de fazer isso de forma eficiente.
Funções Construtoras
Um construtor é uma função usada para configurar novos objetos. Use estas regras para evitar erros:
- Use letra maiúscula na primeira letra do nome da função. Isso ajuda a identificá-la como um construtor.
- Use a palavra-chave
new. Se você esquecer disso, a função será executada como uma função normal e falhará ao criar o objeto.
Valores Padrão
Você pode definir valores padrão em seu construtor. Isso garante que seus objetos permaneçam válidos, mesmo que você omita alguns detalhes.
Exemplo:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
Se você chamar new Person(), o nome se tornará "Unknown" e a idade se tornará 0.
Object.create()
Você pode usar Object.create() para criar um novo objeto baseado em um já existente. Isso utiliza herança baseada em protótipos. Em vez de copiar dados, o novo objeto se vincula ao protótipo original.
Otimização de Memória
Não coloque métodos dentro do próprio construtor. Se você fizer isso, cada novo objeto receberá sua própria cópia desse método. Isso desperdiça memória.
Em vez disso, adicione métodos ao protótipo. Dessa forma, todos os objetos compartilharão uma única versão do método.
Exemplo:
Person.prototype.greet = function() {
console.log("Hello " + this.name);
};
Herança
Classes permitem que uma classe herde de outra. Use a palavra-chave super() em uma classe filha para chamar o construtor pai. Isso permite que a filha acesse propriedades do pai.
Benefícios de usar construtores:
- Código reutilizável: Crie muitos objetos com um único padrão.
- Lógica limpa: Mantenha a configuração do objeto em um só lugar.
- Inicialização fácil: Defina valores específicos durante a criação.
- Herança: Construa objetos complexos a partir de outros mais simples.
Source: https://www.geeksforgeeks.org/javascript/js-constructor-method/ Source: https://www.w3schools.com/js/js_object_constructors.asp
Full post: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96