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

setTimeout sem função anônima

Olá, gostaria de perguntar se é possível utilizar a função setTimeout sem necessariamente utilizar uma função anônima como seu primeiro argumento, ou seja, quero utilizar uma função nomeada como primeiro argumento e passar para essa função nomeada as variáveis que ela vai utilizar na sua execução.

Acredito que o mesmo raciocínio também seria válido para funções de eventos, permitindo que ao clicar, por exemplo, a função executada não seja anônima e sim nomeada e recebendo todos os parâmetros de que precisa. Os exemplos até então sempre usavam funções nomeadas que não recebiam parâmetros.

1 resposta
solução!

Boa noite, Bruno! Como vai?

Tem como sim, mas para isso será necessário utilizar um recurso um pouco mais avançado na linguagem JavaScript chamado closure! Como aparentemente vc está no início da sua caminhada dentro do sertão do JS acho que não há necessidade de tratar sobre esse assunto agora! Até pq ele é tratado em cursos mais avançados de JS aqui na Alura!

Contudo, caso vc já queira pegar alguns spoilers, deixo aqui o link da documentação do JS onde esse assunto é tratado!

Além disso, segue um exemplo prático:

function mostraTexto(texto) {
     return function() {
          console.log(texto);
     }
}

setTimeout(mostraTexto('Olá closure!'), 2000);

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!