Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Necessidade de passar parâmetro na função anônima vs. a não necessidade com a função nomeada

// Como função anônima
$.get("http://localhost:3000/frases",function(dados){
    console.log(dados);
});
// Como função nomeada
$.get("http://localhost:3000/frases", imprimeConsole);
function imprimeConsole(dados){
    console.log(dados);
}

Porque na função nomeada não há a necessidade de passar o parâmetro de retorno para a correta execução da função? Vi que na função anônima há esse cuidado, mas com a função nomeada não há, e mesmo assim o código funciona. O que acontece por baixo dos panos com a injeção desses parâmetros?

Se for observar pelo lado de escopo de acesso, a função anônima teria mais chances de acessar a variável injetada do método get, pois a função está declarada dentro do próprio método, enquanto na função nomeada, ela é declarada após a chamada do método get.

1 resposta
solução!

Boa tarde, Glayderson! Como vai?

O que ocorre é que o próprio JS se encarrega de colocar os dados da requisição no parâmetro declarado. Sendo assim, na realidade, tanto a primeira quanto a segunda forma de codificação dão na mesma.

O detalhe é que na primeira forma, como vc está criando uma função anônima, vc precisa indicar que aquela função irá receber um parâmetro. Já no segundo caso, como a função já foi definida em outro momento, vc apenas precisa passar para a função $.get() o nome da função que vc criou. No entanto, repare que mesmo essa função sendo nomeada, vc precisa indicar na declaração dela que ela receberá um parâmetro!

Ou seja, realmente são formas diferentes de escrever a mesma coisa!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software