Invocação de Função Imediata em JavaScript
Agora vamos analisar uma técnica que permite invocar uma função diretamente no local de sua declaração. Essa construção é chamada de Immediately Invoked Function Expression (IIFE).
Vamos ver um exemplo. Suponha que temos a seguinte expressão funcional:
let func = function() {
console.log('!');
};
func(); // exibirá '!'
Agora, em vez de atribuir nossa função a uma variável, vamos invocá-la imediatamente, "no local". Para isso, colocamos parênteses após a função:
+function() {
console.log('!'); // exibirá '!'
}();
A presença do sinal de mais neste caso é uma condição obrigatória, pois sem ele a função se tornaria uma Function Declaration, e estas não podem ser invocadas no local (especialmente sem um nome). Claro, em vez do sinal de mais, pode ser qualquer coisa, - o principal é que nossa função seja uma expressão funcional.
Determine, sem executar o código, o que será exibido no console:
!function() {
console.log('!');
}();
Determine, sem executar o código, o que será exibido no console:
function() {
console.log('!');
}();