⊗jsPmFTNFE 235 of 505 menu

Genoemde funksionele uitdrukkings in JavaScript

Gestel ons het 'n funksionele uitdrukking soos volg:

let toets = function() { console.log('!'); }; toets(); // sal '!' uitvoer

Kom ons gee ons funksie die naam func:

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

Soos jy reeds weet, kan jy nie by hierdie naam na die funksie verwys nie:

let toets = function func() { console.log('!'); }; toets(); // sal '!' uitvoer func(); // sal 'n fout gee

Hoekom dan die funksie 'n naam gee as dit nie beskikbaar sal wees nie? Die saak is dat hierdie naam nie van buite die funksie toeganklik sal wees nie, maar wel toeganklik is binne hierdie funksie.

Kom ons toets dit:

let toets = function func() { console.log(func); // funksie sal sy eie bronkode uitvoer }; toets(); // roep die funksie aan

Kom ons roep ons funksie binne homself aan:

let toets = function func() { console.log('!'); // voer '!' uit func(); // roep onsself aan }; toets();

As jy hierdie kode uitvoer, sal 'n oneindige aantal uitsette na die konsole weergegee word.

Eintlik kan ons funksie binne homself nie net as func aangeroep word nie, maar ook as toets:

let toets = function func() { console.log('!'); toets(); // roep onsself aan }; toets();

Wat is dan die verskil? Die verskil is dat die naam toets - bloot 'n veranderlike is. Tydens die werk van die skrip kan ons funksie in 'n ander veranderlike geskryf word of as 'n parameter oorgedra word - in hierdie geval kan die skakel tussen die veranderlike toets en die funksie verdwyn.

Die naam func is egter spesifiek aan die funksie gekoppel sodat ons na ons funksie binne homself kan verwijs.

Sulke Function Expression met die funksienaam word genoemde funksionele uitdrukkings genoem.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp