⊗jsPmFTNFE 235 of 505 menu

Nazwane wyrażenia funkcyjne w JavaScript

Załóżmy, że mamy następujące wyrażenie funkcyjne:

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

Nadajmy naszej funkcji nazwę func:

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

Jak już wiesz, nie można odwołać się do funkcji po tej nazwie:

let test = function func() { console.log('!'); }; test(); // wypisze '!' func(); // zwróci błąd

Po co więc nadawać nazwę funkcji, jeśli nie będzie ona dostępna? Chodzi o to, że ta nazwa będzie niedostępna na zewnątrz funkcji, ale dostępna wewnątrz tej funkcji.

Sprawdźmy:

let test = function func() { console.log(func); // funkcja wypisze swój własny kod źródłowy }; test(); // wywołujemy funkcję

Wywołajmy naszą funkcję wewnątrz niej samej:

let test = function func() { console.log('!'); // wypisujemy '!' func(); // wywołujemy samych siebie }; test();

Jeśli uruchomisz ten kod, to do konsoli zostanie wypisana nieskończona liczba wywołań.

W rzeczywistości nasza funkcja może zostać wywołana wewnątrz siebie samej nie tylko jako func, ale i jako test:

let test = function func() { console.log('!'); test(); // wywołujemy samych siebie }; test();

Jaka jest więc różnica? Różnica polega na tym, że nazwa test to po prostu zmienna. W procesie pracy skryptu nasza funkcja może zostać zapisana w innej zmiennej lub przekazana jako parametr - w tym przypadku związek między zmienną test i funkcją może zniknąć.

Nazwa func jest natomiast sztywno przypisana do funkcji specjalnie po to, aby można było odwołać się do naszej funkcji wewnątrz niej samej.

Takie Function Expression z nazwą funkcji nazywane są nazwanymi wyrażeniami funkcyjnymi.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć