Em JavaScript, os métodos getters e setters em JavaScript permitem controlar o acesso e a manipulação de propriedades de um objeto. Eles ajudam a encapsular dados, fornecendo uma maneira de executar operações personalizadas ao obter ou definir valores. Neste post, vamos explorar o que são getters e setters, como usá-los e os benefícios de aplicá-los em seu código JavaScript.
1. O que são Getters e Setters?
- Getters são métodos usados para “pegar” (retornar) o valor de uma propriedade. Eles permitem que você defina uma lógica adicional ao acessar um valor.
- Setters são métodos usados para “configurar” (definir) o valor de uma propriedade. Com eles, é possível validar ou modificar o valor antes de armazená-lo.
2. Como usar Getters e Setters
Para definir getters e setters, usamos as palavras-chave get
e set
dentro de uma classe ou de um objeto.
Exemplo básico de Getter e Setter
class Pessoa {
constructor(nome) {
this._nome = nome; // Usamos um _ para indicar que esta é uma propriedade "privada"
}
get nome() {
return this._nome.toUpperCase(); // Retorna o nome em letras maiúsculas
}
set nome(novoNome) {
if (novoNome.length > 0) {
this._nome = novoNome;
} else {
console.error("O nome não pode estar vazio.");
}
}
}
const pessoa = new Pessoa("Ana");
console.log(pessoa.nome); // "ANA"
pessoa.nome = "Carlos"; // Altera o nome para "Carlos"
console.log(pessoa.nome); // "CARLOS"
3. Por que usar Getters e Setters?
Os getters e setters oferecem vantagens, como:
- Validação: Com os setters, você pode validar os valores antes de atribuí-los.
- Encapsulamento: Mantém a lógica de manipulação dos dados dentro da classe, protegendo as variáveis de acesso direto e não controlado.
- Cálculo: Os getters permitem calcular ou formatar valores ao acessá-los, sem modificar a propriedade original.
4. Exemplos avançados
Exemplo com Getter e Setter para formatar valores
Podemos usar getters e setters para formatar ou calcular valores de forma dinâmica.
class Produto {
constructor(nome, preco) {
this._nome = nome;
this._preco = preco;
}
get preco() {
return `R$${this._preco.toFixed(2)}`; // Retorna o preço formatado
}
set preco(novoPreco) {
if (novoPreco >= 0) {
this._preco = novoPreco;
} else {
console.error("O preço não pode ser negativo.");
}
}
}
const produto = new Produto("Notebook", 1500);
console.log(produto.preco); // "R$1500.00"
produto.preco = 2000;
console.log(produto.preco); // "R$2000.00"
Exemplo: Controlando propriedades derivadas com Getters
Getters também podem ser usados para criar propriedades derivadas, baseadas em outras propriedades.
class Retangulo {
constructor(largura, altura) {
this.largura = largura;
this.altura = altura;
}
get area() {
return this.largura * this.altura; // Calcula a área do retângulo
}
}
const retangulo = new Retangulo(5, 10);
console.log(retangulo.area); // 50
5. Resumo
- Getters e Setters permitem que você manipule e acesse propriedades de um objeto de forma controlada e segura.
- Eles promovem um código mais limpo, encapsulado e fácil de manter.
Com getters e setters, você adiciona mais controle e segurança ao acessar e definir propriedades de objetos em JavaScript.
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 sobre Getters e setters em JavaScript? 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