Nestede funksjoner i JavaScript
La oss si at vi har en funksjon som tar imot to tall som parametre og returnerer summen av kvadratene av disse tallene:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // skriver ut 13 (resultatet av 2 * 2 + 3 * 3)
La oss ta operasjonen av å opphøye i andre og flytte den
til en hjelpefunksjon square:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // skriver ut 13
La oss si at vi er sikre på at funksjonen square
kun vil bli brukt i funksjonen func
og ingen andre steder.
I dette tilfellet ville det vært praktisk å sørge for at ingen ved en feiltakelse bruker den (dette gjelder deg selv eller en annen programmerer som jobber sammen med deg).
JavaScript har en elegant løsning: vi kan
plassere vår hjelpefunksjon square
inni func. På denne måten
vil hjelpefunksjonen vår kun være tilgjengelig
inni func, og ikke utenfor.
La oss gjøre dette:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // skriver ut 13
Et forsøk på å kalle square utenfor func
vil føre til en feil:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! vil gi en feil
Lag en funksjon func som parametrene
tar imot to tall, og returnerer summen
av kvadratet av det første tallet med kubikken av det andre tallet.
Lag for dette en hjelpefunksjon
square, som opphøyer et tall i andre,
og en hjelpefunksjon cube, som opphøyer
et tall i tredje.