As funções construtoras em JavaScript são uma forma tradicional de criar objetos. Elas permitem a criação de múltiplas instâncias de um objeto com a mesma estrutura, promovendo a reutilização de código e a organização. Neste post, vamos explorar como as funções construtoras funcionam, como utilizá-las e algumas boas práticas.
1. O que são funções construtoras?
Uma função construtora é uma função que é usada para criar e inicializar objetos. Ao contrário de funções normais, uma função construtora é chamada com a palavra-chave new
, que cria uma nova instância do objeto.
2. Definindo uma função construtora
Veja um exemplo básico de uma função construtora para um objeto Carro
:
function Carro(marca, modelo, ano) {
this.marca = marca;
this.modelo = modelo;
this.ano = ano;
this.info = function () {
return `${this.marca} ${this.modelo} - ${this.ano}`;
};
}
const carro1 = new Carro("Toyota", "Corolla", 2020);
const carro2 = new Carro("Honda", "Civic", 2019);
console.log(carro1.info()); // "Toyota Corolla - 2020"
console.log(carro2.info()); // "Honda Civic - 2019"
3. Usando this em funções construtoras
Dentro de uma função construtora, a palavra-chave this
refere-se à nova instância do objeto que está sendo criada. Isso permite que você atribua valores às propriedades do objeto.
4. Prototipagem com funções construtoras
Uma prática comum ao usar funções construtoras é adicionar métodos ao protótipo da função. Isso economiza memória, pois todos os objetos criados a partir da função construtora compartilham o mesmo método.
function Carro(marca, modelo, ano) {
this.marca = marca;
this.modelo = modelo;
this.ano = ano;
}
Carro.prototype.info = function () {
return `${this.marca} ${this.modelo} - ${this.ano}`;
};
const carro1 = new Carro("Ford", "Mustang", 2021);
const carro2 = new Carro("Chevrolet", "Camaro", 2020);
console.log(carro1.info()); // "Ford Mustang - 2021"
console.log(carro2.info()); // "Chevrolet Camaro - 2020"
5. Construtores de objetos com validação
As funções construtoras também podem incluir lógica para validar os dados fornecidos ao criar um novo objeto.
function ContaBancaria(saldoInicial) {
this.saldo = saldoInicial;
this.depositar = function (valor) {
if (valor > 0) {
this.saldo += valor;
console.log(`Depositado: R$${valor}. Saldo atual: R$${this.saldo}`);
} else {
console.log("Valor de depósito inválido!");
}
};
this.sacar = function (valor) {
if (valor > 0 && valor <= this.saldo) {
this.saldo -= valor;
console.log(`Sacado: R$${valor}. Saldo atual: R$${this.saldo}`);
} else {
console.log("Saque inválido!");
}
};
}
const conta1 = new ContaBancaria(1000);
conta1.depositar(500); // "Depositado: R$500. Saldo atual: R$1500"
conta1.sacar(200); // "Sacado: R$200. Saldo atual: R$1300"
6. Boas práticas
- Nomeie suas funções construtoras com letra maiúscula: É uma convenção em JavaScript que ajuda a identificar facilmente funções construtoras.
- Use o
new
sempre que criar instâncias: Sempre chame uma função construtora com a palavra-chavenew
para garantir que a nova instância seja criada corretamente. - Utilize prototipagem para métodos comuns: Isso economiza memória e mantém o código mais limpo.
As funções construtoras são uma maneira eficaz de criar objetos em JavaScript, promovendo a reutilização de código e a organização.
Ao entender como usar funções construtoras e o conceito de protótipos, você pode criar estruturas de dados robustas e modulares em suas aplicações. Experimente implementar funções construtoras em seus projetos e veja como elas podem simplificar sua lógica de programação!
Aprenda através de projetos reais e aulas práticas. São 20 cursos completos + cursos bônus. Grupos privados exclusivos, atualizações constantes e lives semanais.
Python, PHP, Java Script, CSS, Node, Angular JS, MySQL, Photoshop, Flutter, AWS, Apache e muito mais!
CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários