1
resposta

Poderia me explicar melhor essa linha de pensamentos da resposta

class Conta { constructor(titular, numero) { this.titular = titular; this.numero = numero; this._saldo = 0; } } Correto, por padrão o JS adiciona como undefined no objeto uma propriedade que tentamos acessar caso ela não exista. isso devido ao escopo do objeto conta. porque ele está privado e por isso ao tentar acessar essa variavel retorna undefined e pára retorna o valor seria necessario criar um metodo de acessso do tipo get certo???

1 resposta

Olá, Marcel, tudo bem?

Sua lógica está correta! Mas apenas reforçando algo que você já deve saber: a propriedade _saldo da classe Conta não é privada de verdade! Ou seja, se no exemplo desse exercício digitássemos conta._saldo (com o underline _), o saldo seria imprimido. Mas claro, não devemos acessar uma propriedade que está privada por convenção.

Então sim, para acessar o saldo da forma correta, precisaríamos de um acessor get! Algo assim:

class Conta {
  constructor(titular, numero) {
    this.titular = titular;
    this.numero = numero;
    this._saldo = 0;
  }

    // acessor para _saldo
    get saldo() {
        return this._saldo;
    }
}

class ContaCorrente extends Conta {
  constructor(titular, numero) {
    super(titular, numero);
  }
}

const conta = new ContaCorrente("Andre", 1245);
console.log(conta.saldo)  // 0

Dessa forma, conta.saldo conseguirá acessar o atributo _saldo.

Espero ter ajudado! Se tiver dúvidas ou dificuldades, ficaremos felizes em te ajudar. Bons estudos!

Caso esta resposta tenha resolvido sua dúvida, por favor, marque como solucionada ✓. Bons Estudos!