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

Orientação a Objetos em JavaScript

Pessoal, Levando em conta a Orientação a Objetos em Javascript, fiquei com algumas dúvidas: 1. Existe a definição de classe em Javascript assim como existe no Java? 2. Poderia considerar o descrito abaixo como um "construtor" de uma "classe" Paciente? É essa a melhor forma de fazer isso?

Arquivo "paciente.js"

function montaPaciente(nome, peso, altura) {
    var paciente = {"nome":nome, "peso":peso, "altura":altura, 
                   pegaImc = function() {
                   },
                   outraFuncao = function() {
                   }
                   };
   return paciente;
}
3 respostas
solução!

No ES5 (versão 5 do JavaScript) você pode criar funções construtoras que se assemelham a classes. Vou alterar seu exemplo para ficar mais correto:

function Paciente(nome, peso, altura) {

    this.nome = nome;
    this.peso = peso;
    this.altura = altura;
}
Paciente.prototype.exibeDados = function() {
    alert(this.nome + ',  ' + this.peso + ', ' + this.altura;
};

Para criar instâncias, você faz:

var paciente1= new Paciente();
paciente1.nome = 'Flávio';
paciente1.altura = 1.71;
paciente1.peso = 76;
paciente1.exibeDados();

Contudo, no ES6 já podemos criar classes diretamente. Essa não vou dizer como se faz, pois vou esperar você ficar ninja e fazer meu curso de JavaScript avançado com ES6 do alura ;)

Ah, não resisti. Olhe um exemplo em ES6!

class Paciente {
    constructor(nome, peso, altura) {
        this.nome = nome;
        this.peso = peso;
        this.altura = altura;
    }

    exibeDados() {
         alert(this.nome + ',  ' + this.peso + ', ' + this.altura;
    }
}

Nem todos os navegadores suportam ainda essa sintaxe.

Valeu Flávio hahaha Tá na lista o curso...