Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

por que está dando undefined???????

Na aula 06 e atividade 9 sobre Herança,fiz o código mais os valores de saldo da undefined, pq?????????

class Conta {

    constructor(saldo){
        this._saldo = saldo;
    }

    get saldo(){
        this._saldo;
    }

    atualiza(taxa){
        throw new Error('O método atualiza deve ser implementado')

    }
}

class ContaCorrente extends Conta {

    atualiza(taxa){
        this._saldo = this._saldo + taxa;
    }
}

class ContaPoupanca extends Conta {

    atualiza(taxa){
        this._saldo = this._saldo + taxa * 2;
    }
}

index de teste

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Atividade de POO</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <h1>POO Conta</h1>

        <script src="Conta.js"></script>
        <script src="ContaCorrente.js"></script>
        <script src="ContaPoupanca.js"></script>

        <script>
            conta1 = new ContaCorrente(200); 
            conta2 = new ContaPoupanca(300); 

            conta1.atualiza(2);
            conta2.atualiza(3);

            console.log(conta1.saldo); //202
            console.log(conta2.saldo); //306
        </script>
    </body>
</html>
2 respostas

Alisson, tudo bem ?

Você acredito que você queira chamar o método :

console.log(conta1.saldo()); //202

console.log(conta2.saldo()); //306

Testa e fala para gente se deu tudo certo :D

solução!

Fala meu aluno, futuro cangaceiro em JavaScript!

Você esqueceu o return nos getter, por isso o resultado é undefined!

  get saldo(){
       // faltou o return
        this._saldo;
  }

O correto é

  get saldo(){
       return  this._saldo;
  }

Sucesso e bom estudo!