⊗jsPmFTNFE 235 of 505 menu

Imenovani funkcionalni izrazi u JavaScript-u

Neka imamo sledeći funkcionalni izraz:

let test = function() { console.log('!'); }; test(); // ispisace '!'

Hajde da damo ime func našoj funkciji:

let test = function func() { console.log('!'); }; test();

Kao što već znate, po ovom imenu se ne može pristupiti funkciji:

let test = function func() { console.log('!'); }; test(); // ispisace '!' func(); // baciće grešku

Zašto onda dati ime funkciji, ako ono neće biti dostupno? Stvar je u tome što će ovo ime biti nedostupno spolja iz funkcije, ali dostupno unutar nje same.

Hajde da proverimo:

let test = function func() { console.log(func); // funkcija će ispisati svoj sopstveni izvorni kod }; test(); // pozivamo funkciju

Hajde da pozovemo našu funkciju unutar nje same:

let test = function func() { console.log('!'); // ispisujemo '!' func(); // pozivamo sami sebe }; test();

Ako pokrenete ovaj kod, u konzolu će se beskonačno mnogo puta ispisivati '!'.

Zapravo, naša funkcija može biti pozvana unutar sebe ne samo kao func, već i kao test:

let test = function func() { console.log('!'); test(); // pozivamo sami sebe }; test();

U čemu je onda razlika? Razlika je u tome što je ime test samo promenljiva. U toku rada skripta, naša funkcija može biti upisana u drugu promenljivu ili prosleđena kao parametar - u tom slučaju veza između promenljive test i funkcije može nestati.

Ime func je, pak, čvrsto vezano za funkciju upravo zato da bi se moglo pristupiti našoj funkciji unutar nje same.

Ovakvi Function Expression sa imenom funkcije se nazivaju imenovanim funkcionalnim izrazima.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij