⊗jsPmFTNFE 235 of 505 menu

Nimetetyt funktionaaliset lausekkeet JavaScriptissä

Oletetaan, että meillä on tällainen funktionaalinen lauseke:

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

Annetaan funktiollemme nimi func:

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

Kuten jo tiedät, tällä nimellä ei voi viitata funktioon:

let test = function func() { console.log('!'); }; test(); // tulostaa '!' func(); // aiheuttaa virheen

Miksi antaa funktiolle nimi, jos sitä ei ole saatavilla ulkopuolelta? Asia on siinä, että tämä nimi on saatavilla funktion sisällä, mutta ei sen ulkopuolella.

Testataan tätä:

let test = function func() { console.log(func); // funktio tulostaa oman lähdekoodinsa }; test(); // kutsutaan funktiota

Kutsutaan funktiotamme sen sisällä:

let test = function func() { console.log('!'); // tulostetaan '!' func(); // kutsutaan itseämme }; test();

Jos tämä koodi ajetaan, konsoliin tulostuu loputon määrä tulostuksia.

Itse asiassa funktiomme voidaan kutsua sisäisesti paitsi nimellä func, myös nimellä test:

let test = function func() { console.log('!'); test(); // kutsutaan itseämme }; test();

Mikä ero on? Erona on, että nimi test on vain muuttuja. Skriptin suorituksen aikana funktiomme voi tallentua toiseen muuttujaan tai välittyä parametrina - tässä tapauksessa yhteys muuttujan test ja funktion välillä voi katketa.

Nimi func on kuitenkin tiukasti sidottu funktioon nimenomaan siksi, että funktioon voidaan viitata sen sisällä.

Tällaisia Function Expression -lausekkeita, joissa on funktion nimi, kutsutaan nimetyiksi funktionaalisiksi lausekkeiksi.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää