Não consegui entender como funciona essa função, se não foi passado nenhum parâmetro, nenhuma regra para ela acontecer, como ela funciona?
Não consegui entender como funciona essa função, se não foi passado nenhum parâmetro, nenhuma regra para ela acontecer, como ela funciona?
Oi, Márcia, então
vc tem em criaTarefa.js
import BotaoConclui from './concluiTarefa.js'
//...
tarefa.appendChild(BotaoConclui(carregaTarefa, id))
e em concluiTarefa.js
const concluirTarefa = ( atualiza, id ) => {
//...
atualiza(); // foi passada uma função como parâmetro
}
Neste caso acima a função carregaTarefa
foi passada como parâmetro
Seria o mesmo que fazer isso
const concluirTarefa = ( id ) => {
//...
carregaTarefa(); // esta função atualiza os dados
}
Márcia, eu também não tinha entendido a questão do atualiza e vim aqui no fórum e vi sua questão.
Vendo a explicação do Luis, a principio me pareceu ainda confuso, mas em seguida eu me toquei da questão toda.
É que quando definimos o parâmetro, o que se coloca dentro dos parenteses como parâmetro é apenas um nome aleatório, um "recipiente", que pode assumir qualquer valor. é como um X numa equação. Nesse caso o X é a palavra "atualiza", que assumira a "forma" da função que será passada como parâmetro.
Poderia, por exemplo, ter dado o nome dela de "xis" no parâmetro, e em seguida dentro da função, ser chamada usando "xis( )". Quando passa o parâmetro carregaTarefa, por exemplo, o xis( ) executa carregaTarefa( ). Mas quando passa outra função como parâmetro, ele executa essa outra, e assim por diante.
Na aula, o instrutor chamou o atualiza( ) antes de definir atualiza como parâmetro e isso é que me confundiu. Se ele tivessse feito o contrário, talvez tivesse evitado a confusão.
Não sei se eu ajudei ou compliquei, mas de qualquer forma, obrigado Luis pela ajuda e obrigado Márcia por dividir a dúvida.