⊗jsPmFNFRF 252 of 505 menu

Функция, връщаща функция в JavaScript

Нека имаме следната функция, която връща низ:

function func() { return '!'; } let result = func(); console.log(result); // ще изведе '!'

Сега, по аналогия, вместо низ, нека върнем анонимна функция:

function func() { return function() { return '!'; }; } let result = func(); // в променливата result ще има функция console.log(result); // ще изведе 'function() {return '!';}'

Както виждате, променливата result сега представлява функция. Нека изведем в конзолата резултата от нейното изпълнение. За целта ще ѝ поставим кръгли скоби:

function func() { return function() { return '!'; }; } let result = func(); console.log( result() ); // ще изведе '!'

Тъй като извикването на func() връща функция, можем веднага да извикаме и върнатата функция, ето така: func()() - първите кръгли скоби получават резултата от функцията func (който сам по себе си е функция), а вторите кръгли скоби се прилагат към резултата от func.

Нека опитаме:

function func() { return function() { return '!'; }; } console.log( func()() ); // ще изведе '!'

Направете функция func1, която при извикване по следния начин: func1()(), да върне числото 1. Направете подобна функция func2, която връща числото 2. Намерете сумата от резултатите на тези функции.

Български
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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне