JavaScriptissä välitettävien funktioiden parametrit
Olkoon meillä funktio test, joka
parametrina vastaanottaa toisen funktion ja konsoliin
tulostaa tämän välitetyn funktion tuloksen:
function test(func) {
console.log( func() );
}
Olkoon välitetty funktio func parametrina
vastaanottava luvun ja tee sillä jotain. Välitetään
sille esimerkiksi luku 3:
function test(func) {
console.log( func(3) );
}
Kutsukaamme nyt funktiota test,
välittäen sille parametrina anonyymifunktion.
Tämä anonyymifunktio parametrina vastaanottaa
luvun ja palauttaa tämän luvun neliön.
Kaiken tämän seurauksena rakenteemme
tulostaa luvun 3 neliön, eli 9:
// Tulostaa 9:
test(
function(num) {
return num * num;
}
);
function test(func) {
console.log(func(3));
}
Muotoillaan koodi tyylikkäämmin:
// Tulostaa 9:
test(function(num) {
return num * num;
});
function test(func) {
console.log(func(3));
}
Kopioi koodi minun funktiostani test.
Kutsu tätä funktiota, välittäen sille parametrina
anonyymifunktion, joka parametrina
vastaanottaa luvun ja palauttaa sen kuution.
Muunna koodisi siten, että välitettävä
funktio ei ole anonyymi, vaan se on määritelty
Function Declaration -lauseella nimellä func.
Muunna välitettävä funktio Function
Expression -lauseeksi samalla nimellä func.
Olkoon välitettävä funktio nyt vastaanottamassa
kahta parametria ja palauttamassa niiden summan.
Kun välitettävää funktiota kutsutaan
test:n sisällä, välitä välitettävään funktioon luku 2
ja luku 3. Tulosta tulos.