⊗jsPmFNFRF 252 of 505 menu

Funkcija, grąžinanti funkciją JavaScript

Tarkime, kad turime tokią funkciją, grąžinančią eilutę:

function func() { return '!'; } let result = func(); console.log(result); // išvests '!'

Dabar, pagal analogiją, vietoj eilutės grąžinkime anoniminę funkciją:

function func() { return function() { return '!'; }; } let result = func(); // kintamajame result bus funkcija console.log(result); // išvests 'function() {return '!';}'

Kaip matote, kintamasis result dabar reiškia funkciją. Išveskime į konsolę jos veikimo rezultatą. Norėdami tai padaryti, parašykime jai apvalius skliaustus:

function func() { return function() { return '!'; }; } let result = func(); console.log( result() ); // išvests '!'

Kadangi iškvietimas func() grąžina funkciją, taip mes galime nedelsiant iškviesti šią grąžintą funkciją, štai taip: func()() - pirmieji apvalūs skliaustai gauna funkcijos func rezultatą (kuris pats yra funkcija), o antrieji apvalūs skliaustai taikomi rezultatui func.

Pabandykime:

function func() { return function() { return '!'; }; } console.log( func()() ); // išvests '!'

Sukurkite funkciją func1, kuri būdama iškviesta štai taip: func1()(), grąžintų skaičių 1. Sukurkite analogišką funkciją func2, grąžinančią skaičių 2. Raskite šių funkcijų rezultatų sumą.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti