Directe functie-aanroep in JavaScript
Nu bespreken we een techniek die het mogelijk maakt een functie direct aan te roepen op de plek waar deze wordt gedeclareerd. Zo'n constructie wordt Immediately Invoked Function Expression (IIFE) genoemd.
Laten we naar een voorbeeld kijken. Stel we hebben de volgende function expression:
let func = function() {
console.log('!');
};
func(); // geeft '!' weer
Laten we onze functie nu niet toewijzen aan een variabele, maar deze meteen aanroepen, "ter plekke". Hiervoor plaatsen we haakjes na de functie:
+function() {
console.log('!'); // geeft '!' weer
}();
De aanwezigheid van het plusteken is in dit geval een vereiste voorwaarde, omdat zonder dit de functie een Function Declaration wordt, en deze kunnen niet ter plekke (en dan ook nog zonder naam) worden aangeroepen. Natuurlijk kan in plaats van het plusteken van alles staan, - het belangrijkste is dat onze functie een function expression is.
Bepaal, zonder de code uit te voeren, wat wordt weergegeven in de console:
!function() {
console.log('!');
}();
Bepaal, zonder de code uit te voeren, wat wordt weergegeven in de console:
function() {
console.log('!');
}();