2
respostas

Porque na classe ContaCorrente método Sacar, ele chama o this._classe e não this.classe?

 sacar(valor) {
        let taxa = 1.1;
        return this._sacar(valor, taxa);
    }

na classe ContaCorrente método Sacar, porque foi usado return this._sacar(valor, taxa); e não return this.sacar(valor); ?

2 respostas

Fala ai Heloisa, tudo bem? Foi utilizado o this._sacar para utilizar a função "privada" da clasase que de fato realiza o saque da conta.

Se tu chamar this.sacar iria ficar em um loop infinito, pois, seria uma chamada para a própria função sacar.

Espero ter ajudado.

Oi Heloisa!

O método sacar é o método público e sua responsabilidade é adicionar uma taxa padrão à ação de saque. A função que de fato faz as validações e retorna um valor a ser sacado é o this._sacar.

Podemos ampliar um pouco o código para ficar mais claro:

sacar(valor) {
    let taxa = 1.1;
    let valorSacado = this._sacar(valor, taxa);
    return valorSacado;
}

Ou seja, quando a função sacar é chamada com um valor, ela cria uma variável taxa e os dois são passados para a função _sacar. Esta executa seu papel calculando o valor multiplicado pela caixa e retorna o resultado. Este valor é armazenado pela variavel valorSacado que é por fim retornado pela sacar. No código do instrutor, a criação da variável é omitido para deixar a função um pouco mais rápida.

Espero ter ajudado. Se ainda tiver alguma dúvida, poste aqui por favor. :)