Olá Alexandra, tudo bem?
De fato refatoração pode ser algo um pouco complexo e demora um pouquinho para a gente efetivamente compreender todas as partes, mas fique tranquila :)
Vou explicar cada parte que você não entendeu:
por que sempre tem que criar uma variavel antes de chamara função?
Precisamos criar uma variável para guardar o endereço na memória onde foi criado a linha de nossa tabela, veja o nosso código:
var pacienteTr = montaTr(paciente);
tabela.appendChild(pacienteTr);
Se não tivéssemos criado o var pacienteTr
não teríamos mais acesso onde estava essa linha, então sempre que chamamos uma função armazenamos o resultado dela em alguma variável!
por que é necessário criar?? não te outro jeito??
Existe como não criar, veja que aos 11 minutos de aula criamos varias variáveis para armazenar o resultado da função montaTd
:
var nomeTd = montaTd(paciente.nome, "info-nome");
var pesoTd = montaTd(paciente.peso, "info-peso");
var alturaTd = montaTd(paciente.altura, "info-peso");
var gorduraTd = montaTd(paciente.gordura, "info-gordura");
var imcTd = montaTd(paciente.imc, "info-imc");
E após isso trocamos para:
pacienteTr.appendChild(montaTd(paciente.nome, "info-nome"));
pacienteTr.appendChild(montaTd(paciente.peso, "info-peso"));
pacienteTr.appendChild(montaTd(paciente.altura, "info-altura"));
pacienteTr.appendChild(montaTd(paciente.gordura, "info-gordura"));
pacienteTr.appendChild(montaTd(paciente.imc, "info-imc"));
Afinal o que estamos fazendo?
Ao invés de armazenar o resultado da função em uma variável, estamos passando o resultado para outra função (pacientTr.appendChild), dessa forma recebemos o retorno da função e já colocamos em nossa tr
.
Poderíamos fazer a mesma coisa no começo:
var tabela = document.querySelector("#tabela-pacientes");
tabela.appendChild(montaTr(paciente));
Mas as vezes para quem está lendo pode não ser tão claro o que estamos fazendo, então da maneira original a leitura é um pouco melhor, pois sabemos que estamos criando uma linha com os dados do paciente e armazenando em nossa tabela, nesse segundo caso pode parecer muito direto para quem está observando nosso código :)
Recomendo que você de uma olhadinha novamente na aula, pois acredito que após uma segunda vez vai ficar mais claro, mas basicamente o que estamos tentando sempre fazer é:
- Trocar códigos repetidos por funções
- Armazenar o resultado de funções em variáveis
Qualquer coisa estou a disposição :)
Abraços e Bons Estudos!