1
resposta

POO Javascript

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeNão entendi porque aparece calcImc is not defined. paulo não é um objeto que criei a partir da classe Paciente? porque ele não consegue acessar calcImc?

1 resposta

Oi, Matheus!

Quando você, na linha 13 da sua imagem, declara o paulo = new Paciente(), nesse momento a variável paulo é instanciada com as propriedades da classe Paciente vazias, pois você não passou nenhum valor. O correto seria isso aqui:

let paulo = new Paciente(1.80, 76, 40, 10, "Paulo")
//dê o valor na mesma ordem das propriedades da classe
//o primeiro é a altura e o último é o nome, existem 5 propriedades

//Agora, ao acessar:
console.log(paulo.nome); //irá mostrar "Paulo" no console
console.log(paulo.calcImc()); //irá mostrar o resultado da função no console

Outro problema acontece quando você novamente chama, na linha 14, a variável paulo... Você acabou sobrescrevendo ela: antes ela era uma instância de Paciente, agora você transformou ela em um objeto totalmente novo, sem relação com a classe Paciente. Por conta disso, a função calcImc() não é encontrada, pois somente existe dentro da classe Paciente.

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