⊗jsPmFNFAP 242 of 505 menu

Prosleđivanje funkcija kao parametara u JavaScriptu

Funkcije, slično kao brojevi, stringovi i nizovi, mogu se proslediti kao parametri drugim funkcijama.

Pogledajmo detaljnije na praktičnom primeru. Pretpostavimo da imamo funkciju test koja prima dva parametra:

test(parameter1, parameter2);

Hajde da u prvi parameter funkcije test prosledimo anonimnu funkciju koja vraća 1, a u drugi parameter - anonimnu funkciju koja vraća 2:

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

Gore navedeni kod još uvek ne radi, pošto nismo kreirali samu funkciju. Napravimo to:

function test(func1, func2) { }

Prilikom definisanja funkcije naveli smo dva parametra - func1 i func2. Ovi parametri ne znaju ništa o tome šta će im biti prosleđeno. Možemo, na primer, proslediti brojeve:

test(1, 2); // pozivamo funkciju function test(func1, func2) { console.log(func1); // ispisaće 1 console.log(func2); // ispisaće 2 }

A možemo proslediti funkcije:

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

Kao što vidite, sada se u konzolu ispisuje izvorni kod funkcija. Hajde da to promenimo tako da ispisuje njihove rezultate. Za to treba da dodamo okrugle zagrade pozivima funkcija:

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

Hajde da ispišemo u konzolu zbir rezultata prve i druge funkcije:

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

Napravite funkciju test koja kao parametre prima 3 funkcije. Prosledite joj kao prvi parameter funkciju koja vraća 1, kao drugi - funkciju koja vraća 2, kao treći - funkciju koja vraća 3. Ispišite u konzolu zbir rezultata funkcija.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij