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.

QUER SER UM PROGRAMADOR FULL-STACK E DOMINAR AS PRINCIPAIS TECNOLOGIAS DO MERCADO?

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:

CLIQUE AQUI E SAIBA MAIS

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

Tags:

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *