Verschachtelte Funktionen in JavaScript
Nehmen wir an, wir haben eine Funktion, die zwei Zahlen als Parameter entgegennimmt und die Summe der Quadrate dieser Zahlen zurückgibt:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // gibt 13 aus (Ergebnis von 2 * 2 + 3 * 3)
Lassen Sie uns die Quadrieroperation in
eine Hilfsfunktion square auslagern:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // gibt 13 aus
Nehmen wir an, wir sind sicher, dass die Funktion square
nur in der Funktion func verwendet wird
und in keiner anderen.
In diesem Fall wäre es praktisch, sicherzustellen, dass sie niemand versehentlich verwendet (Sie selbst oder ein anderer Programmierer, der mit Ihnen zusammenarbeitet).
JavaScript hat eine elegante Lösung: Man kann
unsere Hilfsfunktion square
innerhalb von func platzieren. In diesem Fall
ist unsere Hilfsfunktion nur
innerhalb von func verfügbar und von außen nicht.
Machen wir das:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // gibt 13 aus
Der Versuch, square von außerhalb von func aufzurufen,
führt zu einem Fehler:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! führt zu einem Fehler
Erstellen Sie eine Funktion func, die als Parameter
zwei Zahlen entgegennimmt und die Summe
des Quadrats der ersten Zahl mit der dritten Potenz der zweiten Zahl zurückgibt.
Erstellen Sie dafür eine Hilfsfunktion
square, die eine Zahl quadriert,
und eine Hilfsfunktion cube, die eine Zahl
in die dritte Potenz erhebt.