1
resposta

Da onde vem o valor do parâmetro

A aula diz o seguinte:

E dentro dessa li, no conteúdo dela, colocamos o item do array, mas como temos acesso a ele? Recebemos ele por parâmetro na função:

// form.js

function exibeMensagensDeErro(erros) {
    var ul = document.querySelector("#mensagens-erro");

    erros.forEach(function(erro) {
        var li = document.createElement("li");
        li.textContent = erro;
        ul.appendChild(li);
    });
}

Poderia ser qualquer nome, o importante é saber que ele representa o item de iteração do array.

Infelizmente não entendi esse parâmetro Erro! Em nenhum momento do código declaramos ele! Como que a função sabe que o li.textContent deve ser cada uma das strings?

Agradeço desde já!

Edit: A explicação do exercício seguinte me ajudou! Só peço a confirmação da comunidade sobre o raciocínio!

A lógica é a seguinte:

Todo array possui a função forEach, em JavaScript. Passamos para ela uma função por parâmetro, e nessa função fazemos o que quisermos para cada item do array. O item do array é recebido por parâmetro na função interna:

nomes.forEach(function(nome) { console.log(nome + " é instrutor da Alura"); })

Então, para fins didáticos, vale dizer que o parâmetro interno da função chamada pelo forEach é cada item do array?

Assim, uma possível leitura da primeira situação seria o seguinte?

// form.js

function exibeMensagensDeErro(erros) {
    var ul = document.querySelector("#mensagens-erro");

    erros.forEach(function(ItemDoArray) {
        var li = document.createElement("li");
        li.textContent = ItemDoArray;
        ul.appendChild(li);
    });
}

Entendi certo? Agradeço desde já pela ajuda de vcs!

1 resposta

Isso mesmo Lucas, entendeu certo, cada item do array é passado para a função que você declara dentro do forEach.

Essa função é conhecida como callback, ela é executada para cada item do array. Mais na frente você vai se acostumar mais com isso se for continuar estudando javascript, é onde isso é muito comum.