No início da explicação o pacienteTr recebia o trsPaciente, porém quando começamos a usar funções anônima, a declaração de pacienteTr foi apagada e o código continuou funcionando. Como isso pode estar acontecendo?! :o
var trsPacientes = document.getElementsByClassName("paciente");
percorreArray(trsPacientes, function(pacienteTr){ var tdNome = pacienteTr.getElementsByClassName("info-nome")[0]; var tdPeso = pacienteTr.getElementsByClassName("info-peso")[0]; var tdAltura = pacienteTr.getElementsByClassName("info-altura")[0];
var pacienteAtual={ "nome" : tdNome.textContent, "peso" : tdPeso.textContent, "altura" : tdAltura.textContent, "pegaImc" : function(){
if(this.altura > 0){ var imc = this.peso / (this.altura * this.altura); return imc }else{ console.log("Altura não pode ser menor ou igual a 0!"); } } };
var imc = pacienteAtual.pegaImc(); var tdImc = pacienteTr.getElementsByClassName("info-imc")[0]; tdImc.textContent = imc; console.log(imc);
});