⊗jsPmFTNFE 235 of 505 menu

Expresii funcționale denumite în JavaScript

Să presupunem că avem următoarea expresie funcțională:

let test = function() { console.log('!'); }; test(); // va afișa '!'

Să dăm funcției noastre numele func:

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

După cum știți deja, nu vă puteți referi la funcție după acest nume:

let test = function func() { console.log('!'); }; test(); // va afișa '!' func(); // va arunca o eroare

De ce să dăm un nume funcției dacă acesta nu va fi accesibil? Ideea este că acest nume va fi inaccesibil din afara funcției, dar accesibil în interiorul acestei funcții.

Să verificăm:

let test = function func() { console.log(func); // funcția va afișa propriul său cod sursă }; test(); // apelăm funcția

Să autoapelăm funcția noastră în interiorul ei însăși:

let test = function func() { console.log('!'); // afișăm '!' func(); // ne autoapelăm }; test();

Dacă executați acest cod, în consolă va fi afișat un număr infinit de mesaje.

De fapt, funcția noastră poate fi apelată în interiorul ei însăși nu doar ca func, ci și ca test:

let test = function func() { console.log('!'); test(); // ne autoapelăm }; test();

Care este diferența? Diferența este că numele test este doar o variabilă. În timpul execuției scriptului, funcția noastră poate fi atribuită unei alte variabile sau transmisă ca parametru - în acest caz, legătura dintre variabila test și funcție poate fi pierdută.

Numele func este însă legat rigid de funcție special pentru a ne putea referi la funcția noastră în interiorul ei însăși.

Astfel de Expresii Funcționale cu nume de funcție se numesc expresii funcționale denumite.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge