⊗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šuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць