⊗jsPmFTNFE 235 of 505 menu

Именувани функционални изрази во JavaScript

Да претпоставиме дека имаме ваков функционален израз:

let test = function() { console.log('!'); }; test(); // ќе испише '!'

Да дадеме име на нашата функција func:

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

Како што веќе знаете, не може да се пристапи до функцијата по ова име:

let test = function func() { console.log('!'); }; test(); // ќе испише '!' func(); // ќе даде грешка

Зошто тогаш да се дава име на функцијата ако тоа нема да биде достапно? Поентата е што ова име ќе биде недостижно надвор од функцијата, но достапно внатре во самата функција.

Да го провериме ова:

let test = function func() { console.log(func); // функцијата ќе го испише својот изворен код }; test(); // ја повикуваме функцијата

Да ја повикаме нашата функција внатре во самата неа:

let test = function func() { console.log('!'); // испишува '!' func(); // се повикуваме самите себеси }; test();

Ако се стартува овој код, во конзолата ќе се испишува бесконечен број на пораки.

Всушност, нашата функција може да се повика внатре во самата неа не само како func, туку и како test:

let test = function func() { console.log('!'); test(); // се повикуваме самите себеси }; test();

Која е разликата? Разликата е во тоа што името test е само променлива. Во текот на работата на скриптата, нашата функција може да се запише во друга променлива или да се пренесе како параметар - во тој случај, врската помеѓу променливата test и функцијата може да се изгуби.

Името func, пак, е цврсто врзано за функцијата специјално за да може да се пристапи до нашата функција внатре во самата неа.

Ваквите Function Expression со име на функцијата се нарекуваат именувани функционални изрази.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј