IIFE JavaScripti keeles: mis on kohe kutsutud funktsiooniväljendid?

Funktsioonide avaldus

Funktsiooni deklaratsiooniga loodud funktsioon on Function objekt ning sellel on kõik Function objektide omadused, meetodid ja käitumine. Näide:

 function statement(item){ console.log('Function statement example '+ item); }

Funktsiooni avaldis

Funktsiooni avaldis sarnaneb funktsiooni avaldusega, välja arvatud see, et anonüümsete funktsioonide loomiseks võib funktsiooni nime ära jätta. Näide:

 var expression = function (item){ console.log('Function expression example '+ item); }

Koheselt kutsutud funktsioonide avaldised

Niipea kui funktsioon luuakse, ei pea see seda ise käivitama. Allpool toodud näites salvestab muutuja iife stringi, mille tagastab funktsiooni täitmine.

 var iife = function (){ return 'Immediately Invoked Function Expressions(IIFEs) example '; }(); console.log(iife); // 'Immediately Invoked Function Expressions(IIFEs) example '

Avaldus enne IIFE-d peaks alati lõppema tähega; või see viskab vea.

Halb näide :

var x = 2 //no semicolon, will throw error (function(y){ return x; })(x); //Uncaught TypeError: 2 is not a function

Miks kasutada kohe kutsutud funktsioonide väljendeid?

 (function(value){ var greet = 'Hello'; console.log(greet+ ' ' + value); })('IIFEs');

Ülaltoodud näites, kui javascripti mootor käivitab koodi kohal, loob see koodi nähes globaalse käivitamise konteksti ja loob IIFE mällu funktsiooni objekti. Ja kui see jõuab reale 46tänu sellele, millist funktsiooni kutsutakse, luuakse käigu pealt uus täitekontekst ja tervitusmuutuja läheb funktsiooni täitmise konteksti mitte globaalsesse, see teebki selle ainulaadseks. This ensures that code inside IIFE does not interfere with other code or be interfered by another codeja nii on kood ohutu.

Rohkem informatsiooni

  • Kohe kutsutud funktsiooni avaldis Wikipedias
  • Mida teeb JavaScripti teekide juhtpunkt?