Bruno, ele separou as funções para reutilização de código, para facilitar a modificação, caso aconteça no futuro. O que ele fez? Ele criou um novo arquivo percorre,js
function percorreArray(trsPacientes, comportamento){
for(var posicaoAtual = 0; posicaoAtual <= trsPacientes.length -1; posicaoAtual++){
var trAtual = trsPacientes[posicaoAtual];
comportamento(trAtual);
}
}
Nessa função que ele fez, ele vai receber o valor do que foi passado por parâmetro no outro arquivo, no imprime-nome.js
.
var trsPacientes = document.getElementsByClassName("paciente");
percorreArray(trsPacientes, imprimeNome);
function imprimeNome(pacienteTr){
var tdNome = pacienteTr.getElementsByClassName("info-nome")[0];
var tdPeso = pacienteTr.getElementsByClassName("info-peso")[0];
var tdAltura = pacienteTr.getElementsByClassName("info-altura")[0];
var paciente = {nome: tdNome.textContent,
peso: tdPeso.textContent,
altura: tdAltura.textContent,
pegaImc: function(){
if (this.peso != 0) {
var imc = this.peso/ (this.altura * this.altura); // 25
return imc;
} else console.log("Altura = 0")
}};
console.log(paciente.nome);
}
Percebe, que o arquivo function percorreArray
do arquivo percorre.js
depende que no arquivo imprime-nome.js
ele passe por parâmetro o valor dos pacientes.
Quando ele invoca a percorreArray(trsPacientes, imprimeNome)
no arquivo imprime-nome.js
, ele esta passando o valor dos pacientes, mas a função que ele vai utilizar para fazer a impressão dos nomes.
Voltando ao arquivo percorre.js
, repare que foi criado o mesmo for que utilizava nos outros dois arquivos, foi criada uma variável para receber o valor do paciente atual, e depois da variável, existe uma função sendo invocada, essa função é a função que tu passou por paramentro na hora de ela ser invocada.
function percorreArray(trsPacientes, comportamento){
for(var posicaoAtual = 0; posicaoAtual <= trsPacientes.length -1; posicaoAtual++){
var trAtual = trsPacientes[posicaoAtual];
comportamento(trAtual);
}
}