Funções de Fábrica e Funções Construtoras em JavaScript
Criar objetos um por um é um erro.
Se você tiver 100 colegas de classe e precisar criar um objeto para cada um, escrever objetos individuais levará a problemas. Você repetirá sua lógica muitas vezes. Você também corre o risco de bugs. Por exemplo, você pode acidentalmente sobrescrever o nome de uma propriedade mais tarde no seu código.
Você precisa de uma maneira melhor de reutilizar a lógica.
Factory Functions Pense em uma fábrica. Você insere matérias-primas e obtém um produto acabado. Uma factory function faz o mesmo. Ela recebe parâmetros e retorna um novo objeto.
Exemplo:
function classFactory(name) {
return {
reply() {
return `${name} is present`
}
}
}
Essa abordagem mantém o nome seguro. Você não pode alterar o nome acidentalmente porque ele permanece dentro do escopo da função. Você escreve a lógica uma vez e a reutiliza muitas vezes.
Constructor Functions
Funções construtoras também criam objetos. Elas usam a palavra-chave this e a palavra-chave new. Por convenção, essas funções começam com uma letra maiúscula.
Exemplo:
function Classmate(name) {
this.name = name
this.reply = function() {
return `${this.name} is present`
}
}
Quando você usa a palavra-chave new, o JavaScript faz o trabalho por você. Ele cria um novo objeto, atribui-o ao this