⊗jsPmFTNFE 235 of 505 menu

Pavadinti funkciniai išsireiškimai JavaScript

Tarkime, kad turime tokį funkcinį išsireiškimą:

let test = function() { console.log('!'); }; test(); // išves '!'

Duokime mūsų funkcijai pavadinimą func:

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

Kaip jau žinote, pagal šį pavadinimą neįmanoma kreiptis į funkciją:

let test = function func() { console.log('!'); }; test(); // išves '!' func(); // išmes klaidą

Kam tada duoti funkcijai pavadinimą, jei ji nebus prieinama? Esmė ta, kad šis pavadinimas bus neprieinamas iš funkcijos išorės, bet prieinamas jos viduje.

Patikrinkime:

let test = function func() { console.log(func); // funkcija išves savo paties pradinį kodą }; test(); // iškviečiame funkciją

Iškvieskime mūsų funkciją jos viduje:

let test = function func() { console.log('!'); // išvedame '!' func(); // iškviečiame save patį }; test();

Jei paleisite šį kodą, į konsolę bus išvedama begalinis kiekis išvedimų į konsolę.

Tiesą sakant, mūsų funkcija gali būti iškviesta savo viduje ne tik kaip func, bet ir kaip test:

let test = function func() { console.log('!'); test(); // iškviečiame save patį }; test();

Koks skirtumas? Skirtumas tas, kad pavadinimas test - tai tik kintamasis. Proceso metu mūsų funkcija gali būti įrašyta į kitą kintamąjį arba perduota parametru - tokiu atveju ryšys tarp kintamojo test ir funkcijos gali išnykti.

Pavadinimas func yra standžiai pririštas prie funkcijos specialiai tam, kad būtų galima kreiptis į mūsų funkciją jos viduje.

Tokie Function Expression su funkcijos pavadinimu vadinami pavadintais funkciniais išsireiškimais.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti