1
resposta

Retornar o valor de saque sem return

Para retornar o valor de saque sem return (por não ter entendido como funciona exatamente), fiz dessa forma. Gostaria de saber se está correto ou se tem algum problema.

class Cliente{
    nome;  
    cpf;
}

class ContaCorrente{
    agencia; 
    _saldo = 0;

    saque(valorSaque){
        if(this._saldo >= valorSaque){
            this._saldo -= valorSaque;
            console.log(`Saque de ${valorSaque}efetuado com sucesso. \n_Saldo atual: ${this._saldo}`);
         } else {
            console.log('_Saldo insuficiente :(');
        }
    }

    deposito(valorDeposito){
        if(valorDeposito > 0){
            this._saldo += valorDeposito;
            console.log(`Depósito de R$${valorDeposito} efetuado com sucesso.`);
            console.log(`_Saldo atual: R$${this._saldo}`);
        } else {
            console.log('Valor inválido.')
        }
    }
}

const cliente1 = new Cliente();
cliente1.nome = "Luiz"; 
cliente1.cpf = 35207513860; 

const ContaCorrenteLuiz = new ContaCorrente; 
ContaCorrenteLuiz.agencia = 1001; 
ContaCorrenteLuiz._saldo = 100; 

ContaCorrenteLuiz.deposito(200);

console.log(cliente1);
1 resposta

O problema de você não usar o return é que se o objeto da origem precisar fazer alguma coisa com o valor de saque ele não conseguirá. Ou seja, o return serve para o caso em que você precisa receber uma informação no ponto de origem da chamada.

Por exemplo: Vamos supor que temos um sistema de caixa eletrônico, onde temos essa classe que você postou, porém suponha que ela serve apenas para operação no banco de dados, você não sacou o dinheiro da máquina. Uma outra parte isolada do código, após receber a confirmação do saque do banco de dados pega o valor sacado e efetivamente da a ordem para o caixa contar e liberar as notas.

Uma maneira de resolver isso é a classe que chama o método saque receber através do return o valor efetivamente sacado e então passar esse valor para um outro método, algo como: CaixaEletronico.liberarNotas(valorSacado);

Nota: Meu exemplo é só isso mesmo, um exemplo. Mas espero ter ajudado.