Arvu edastamine parameetrina JavaScriptis
Ärgem nüüd olgu number, millega midagi teeb
edastatav funktsioon, kõvasti salvestatud
test sees, vaid edastame selle esimese parameetrina:
function test(num, func) { // esimese parameetrina tuleb number
console.log(func(num));
}
Kasutame oma funktsiooni:
function test(num, func) {
console.log(func(num));
}
// Väljastab 4:
test(2, function(num) {
return num * num;
});
Meie konstruktsiooni mugavus: meil on
üks funktsioon test, mis parameetrina võtab vastu
numbri. Kuid see, mis numbriga juhtub,
ei ole kõvasti kooditud funktsiooni test sisse.
Me võime näiteks funktsiooni test teise parameetrina
edastada funktsiooni, mis tõstab numbri
ruutu, või näiteks funktsiooni, mis tõstab kuupi:
function test(num, func) {
console.log(func(num));
}
// Leiame arvu ruudu:
test(2, function(num) {
return num * num; // tagastab ruudu
});
// Leiame arvu kuubi:
test(2, function(num) {
return num * num * num; // tagastab kuubi
});
Olgu funktsioon test, mille esimene parameeter
võtab vastu numbri, ning teine ja kolmas parameeter
- funktsioonid, mis samuti parameetrina võtavad vastu numbreid.
Olgu funktsioon test, mis tagastab
edastatud funktsioonide tulemuste summa:
function test(num, func1, func2) {
return func1(num) + func2(num);
}
Kutsuge funktsioon test esimese parameetrina
edastades arvu 3, teise parameetrina
funktsiooni, mis tõstab arvu ruutu, ja kolmandana
- funktsiooni, mis tõstab arvu kuupi. Kuvage
tulemus konsoolis.