Luvun välittäminen parametrina JavaScriptissä
Älä nyt kovakoodaa lukua, jota välitetty funktio
käsittelee, funktion test sisälle, vaan
välitetään se ensimmäisenä parametrina:
function test(num, func) { // ensimmäinen parametri on luku
console.log(func(num));
}
Käytetään funktiotamme:
function test(num, func) {
console.log(func(num));
}
// Tulostaa 4:
test(2, function(num) {
return num * num;
});
Meidän rakenteemme kätevyys: meillä on
yksi funktio test, joka parametrina vastaanottaa
luvun. Mutta mitä luvulle tapahtuu,
ei ole kovakoodattu funktioon test.
Voimme esimerkiksi funktion test toisena
parametrina välittää funktion, joka korottaa
neliöön, tai voimme esimerkiksi välittää funktion, joka korottaa kuutioon:
function test(num, func) {
console.log(func(num));
}
// Etsitään luvun neliö:
test(2, function(num) {
return num * num; // palauttaa neliön
});
// Etsitään luvun kuutio:
test(2, function(num) {
return num * num * num; // palauttaa kuution
});
Olkoon funktio test ensimmäisenä parametrina
vastaanottava luku, ja toisena sekä kolmantena parametrina
- funktiot, jotka myös parametrina vastaanottavat lukuja.
Olkoon funktio test palauttava
annettujen funktioiden tulosten summan:
function test(num, func1, func2) {
return func1(num) + func2(num);
}
Kutsu funktiota test, ensimmäisenä parametrina
välittäen luvun 3, toisena parametrina
funktion, joka korottaa luvun neliöön, ja kolmantena
- funktion, joka korottaa luvun kuutioon. Tulosta
tulos konsoliin.