Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Diferença

Boa tarde!

No gabarito desse exercício, as funções criaLacuna e proximaEtapa foram criadas assim:

var criaLacuna = function() {
// codigo
}

var proximaEtapa = function() {
// codigo
}

Porém se fossem criadas apenas assim, também funcionaria:

function criaLacuna() {
// codigo
}

function proximaEtapa() {
// codigo
}

Qual a difereça entre ambos? O primeiro é uma boa prática e segundo não? Qual motivo do primeiro ter sido a forma escolhida?

4 respostas
solução!

Boa noite, Renato! Como vai?

O mestre Flávio trata sobre esse assunto nessa aula! Dá uma olhada lá e se ainda ficar alguma dúvida é só comentar aqui que eu te ajudo!

Grande abraço e bons estudos, meu aluno!

Olá Renato!

Essa função que não tem nome chamamos de Função Anonima:

function(){
}

Geralmente usamos ela no callback de alguma outra função, como, por exemplo:

setTimeout(function() {
   console.log('código executado na função anônima')
},300);

Repare que não podemos usar essa função no restante do código, ela foi criada exclusivamente para ser usada dentro desse setTimeout.

Já as funções "padrões":

function soma(){
    return 2 + 2;
}

Podem ser chamadas no restante do código pois possuem um nome:

// Código
soma();
// Código

Para que nossa função anonima também seja reconhecida pelo nosso script fazemos a atribuição dela a uma variavel.

var printar = function(){
    console.log("Printei");
}

Logo podemos chamar nossa função, antes desconhecida, pelo nome da variavel:

printar();

Logo, não importa a forma que escreva, não tem certo ou errado nas duas formas (nesse caso).

Você só verá diferença mesmo quando precisar de fato de uma função anonima como no caso que mostrei mais acima.

Temos um artigo no blog um pouco mais avançado mas no começo dele falamos sobre funções anonimas e funcoes nomeadas:

https://blog.caelum.com.br/organize-seu-codigo-javascript-de-maneira-facil/

Temos um trecho da apostila também dedicado a funções anonimas:

https://www.caelum.com.br/apostila-html-css-javascript/javascript-e-interatividade-na-web/#funes-annimas

Espero que tenha ajudado! ^^

Obrigado Gabriel e Guilherme! Ajudaram e muito! Eu to fazendo o curso aos poucos e havia esquecido da excelente explicação do mestre Flávio na aula 2! Obrigado a todos pelas respostas e explicações!

Por nada, Renato! Sempre que tiver qualquer dúvida é só mandar aqui no fórum da Alura!

Grande abraço e bons estudos, meu aluno!