Funktsiooni kohene väljakutse JavaScriptis
Praegu uurime võtet, mis võimaldab funktsiooni välja kutsuda kohe pärast selle deklareerimist. Sellist konstruktsiooni nimetatakse Immediately Invoked Function Expression (IIFE).
Vaatame näidet. Olgu meil järgmine funktsionaalne avaldis:
let func = function() {
console.log('!');
};
func(); // väljastab '!'
Ärgem nüüd omistagem meie funktsiooni muutujasse, vaid kutsumegu selle kohe välja, "kohapeal". Selleks paneme funktsiooni järele ümara sulud:
+function() {
console.log('!'); // väljastab '!'
}();
Pluss olemasolu on antud juhul kohustuslik tingimus, sest ilma selleta muutub funktsioon Function Declaration'iks, mida ei saa kohapeal (veelgi enam ilma nimetata) välja kutsuda. Loomulikult võib plussi asemel olla mis tahes muu asi, - peaasi, et meie funktsioon oleks funktsionaalne avaldis.
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
!function() {
console.log('!');
}();
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
function() {
console.log('!');
}();