1
resposta

Por que preciso definir a função dentro do prototipo?

Por que esse código não funciona?

function Cliente (nome, cpf, email, saldo) {
 this.nome = nome
 this.cpf = cpf
 this.email = email
 this.saldo = saldo
  this.depositar = function(valor){
   this.saldo += valor
 }
}
const andre = new Cliente("Andre", "12312312312", "andre@email.com", 100)

function ClientePoupanca(nome, cpf, email, saldo, saldoPoup){
    Cliente.call(this, nome, cpf, email, saldo)
    this.saldoPoup = saldoPoup
    this.depositarPoup = function(valor){
        this.saldoPoup += valor
   }
}
   const ju = new ClientePoupanca("Ju", "12312312312", "ju@email.com", 100, 200)

   console.log(ju)

   depositarPoup (50);

   console.log(ju)
1 resposta

Olá Iratã, tudo bem com você?

Peço desculpa pela demora para responder o seu tópico.

Revisando o seu código, pude perceber que a função depositarPoup() está sendo chamada de forma incorreta. Isso se dá pelo fato de ela está relacionada ao objeto que você criado, chamado ju. Logo, quando você chamou a função sem referenciar a esse objeto antes, ela não pode ser executada corretamente. Abaixo segue a forma correta que você deve usar.

   ju.depositarPoup(50);

Espero que eu tenha conseguido lhe ajudar. Caso tenha mais problemas ou dúvidas, relacionados a este tópico, estarei à disposição para ajudá-lo.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.