1
resposta

Poderia me esclarecer a declaração set()

Consegui entender muito bem sobre as criações de classes e para que elas funcionam, porém estou em dúvida da diferença entre set e get. Poderia me ajudar?

    set cliente(novoValor){
        if (novoValor instanceof Cliente){
            this._cliente = novoValor;
        }
    }
1 resposta

Olá Gabriel, tudo bem?

GET e SET são dois métodos especiais das classes JavaScript.

  • O método SET é utilizado para atribuir um valor para uma propriedade de uma classe
set propriedade(valor){código}
  • O método GET é utilizado para buscar um valor de uma propriedade de uma classe
get propriedade(){código}

Para deixar a explicação mais clara, vou utilizar um exemplo mais prático realizando a criação da classe Pessoa:

class Pessoa {
    constructor(nome) {
        this._nome = nome;
    } 

    get nome() {
        console.log("Get foi chamado");
        return this._nome;
    }

    set nome(novoNome) {
        console.log("Set foi chamado");
        this._nome = novoNome;
    }
}
  • Criando uma nova instancia::

pessoa1 = new Pessoa("Nádia");

  • Chamando o método GET para buscar o valor da propriedade nome:

console.log(pessoa1.nome);

O valor retornado será o que foi passado no momento da criação da instancia, ou seja, a propriedade nome tem o valor "Nádia" neste momento.

  • Chamando o método SET para atualizar o valor da proprieadade nome:

pessoa1.nome = "Danielle"

O valor atual da propriedade nome é "Nádia", ao chamar o método SET, atualizamos este valor para "Danielle"

  • Chamando novamente o método GET para buscar o novo valor da propriedade nome:

console.log(pessoa1.nome);

O valor retornado será o novo valor atualizado que passamos ao chamar o método SET, ou seja, a propriedade nome agora tem o valor "Danielle".

Espero ter ajudado, qualquer nova dúvida é só falar e bons estudos!