Wywołanie funkcji natychmiastowego w JavaScript
Teraz przeanalizujemy technikę, która pozwala wywołać funkcję bezpośrednio w miejscu jej deklaracji. Taka konstrukcja nazywa się Immediately Invoked Function Expression (IIFE).
Spójrzmy na przykład. Załóżmy, że mamy następujące wyrażenie funkcyjne:
let func = function() {
console.log('!');
};
func(); // wypisze '!'
Spróbujmy teraz nie przypisywać naszej funkcji do zmiennej, ale wywołać ją od razu, "na miejscu". W tym celu po funkcji umieścimy okrągłe nawiasy:
+function() {
console.log('!'); // wypisze '!'
}();
Obecność plusa w tym przypadku jest warunkiem obowiązkowym, ponieważ bez niego funkcja stanie się Function Declaration, a ich nie można wywoływać "w miejscu" (zwłaszcza bez nazwy). Oczywiście, zamiast plusa może być cokolwiek - najważniejsze, żeby nasza funkcja była wyrażeniem funkcyjnym.
Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:
!function() {
console.log('!');
}();
Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:
function() {
console.log('!');
}();