⊗jsPmFNFAP 242 of 505 menu

Posredovanje funkcij kot parametri v JavaScript

Funkcije, podobno kot števila, nizi in polja, se lahko posredujejo kot parametri drugim funkcijam.

Oglejmo si podrobneje s praktičnim primerom. Recimo, da imamo funkcijo test, ki sprejme dva parametra:

test(parameter1, parameter2);

V prvi parameter funkcije test posredujmo anonimno funkcijo, ki vrne 1, v drugi parameter pa anonimno funkcijo, ki vrne 2:

test( function() {return 1;}, function() {return 2;} );

Zgornja koda še ne deluje, saj funkcije same še nismo ustvarili. Naredimo to:

function test(func1, func2) { }

Pri definiranju funkcije smo navedli dva parametra - func1 in func2. Ta parametra ne vesta ničesar o tem, kaj se bo vanju posredovalo. Lahko na primer posredujemo števila:

test(1, 2); // kličemo funkcijo function test(func1, func2) { console.log(func1); // izpiše 1 console.log(func2); // izpiše 2 }

Lahko pa posredujemo funkcije:

test( function() {return 1;}, // prvi parameter function() {return 2;} // drugi parameter ); function test(func1, func2) { console.log(func1); // izpiše 'function() {return 1;}' console.log(func2); // izpiše 'function() {return 2;}' }

Kot lahko vidite, se v konzolo izpiše izvorna koda funkcij. Naredimo tako, da bo izpisala njihove rezultate. Za to funkcijam dodajmo okrogle oklepaje:

test( function() {return 1;}, function() {return 2;} ); function test(func1, func2) { console.log( func1() ); // izpiše 1 console.log( func2() ); // izpiše 2 }

Izpišimo v konzolo vsoto rezultatov prve in druge funkcije:

test( function() {return 1;}, function() {return 2;} ); function test(func1, func2) { console.log( func1() + func2() ); // izpiše 3 }

Naredite funkcijo test, ki kot parametre sprejme 3 funkcije. Vanjo posredujte kot prvi parameter funkcijo, ki vrne 1, kot drugo - funkcijo, ki vrne 2, kot tretjo - funkcijo, ki vrne 3. Izpišite v konzolo vsoto rezultatov funkcij.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni