Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro de tripagem ao executar o método transferir()

Pessoal, alguém poderia me ajudar com meu problema?

Ao realizar a transferência de uma conta de origem para a conta de destino é realizada o "saque" e retornando o saldo atual, mas a conta de destino retorna "NaN", alguém sabe o que pode estar acontecendo:

Vou deixar os dois blocos de código aqui.

index.js

import {Cliente} from "./Cliente.js"
import {ContaCorrente} from "./ContaCorrente.js"

const cliente1 = new Cliente();
cliente1.nome = "Leonardo";
cliente1.cpf = 11122233301;

const conta1 = new ContaCorrente();
conta1.numero = 123465;
conta1.agencia = 1001;
conta1.depositar(2000);

const conta2 = new ContaCorrente();
conta2.depositar(10);

conta1.transferir(200, conta2);

conta2.imprimirSaldo();
conta1.imprimirSaldo();

ContaCorrente.js

export class ContaCorrente {
    numero;
    agencia;
    #saldo = 0;

    sacar(valor) {
        if (this.#saldo >= valor) {
            this.#saldo -= valor;
        }
    }


    depositar(valor) {
        if (valor <= 0) {
            return;
        }
        this.#saldo += valor;
    }

    imprimirSaldo() {
        console.log(this.#saldo);
    }

    transferir(valor, conta) {
        const valorSacado = this.sacar(valor);
        conta.depositar(valorSacado);
    }
}
1 resposta
solução!

Fala ai Leonardo, tudo bem? O problema esta na função transferir, vamos ver ela:

transferir(valor, conta) {
    const valorSacado = this.sacar(valor);
    conta.depositar(valorSacado);
}

Repare que ela recebe um retorno da função this.sacar, mas, a this.sacar não retorna nada, logo o const valorSacado será undefined.

Para resolver mude ela assim:

transferir(valor, conta) {
    this.sacar(valor);
    conta.depositar(valor);
}

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software