Geneste funksies in JavaScript
Gestel ons het 'n funksie wat twee getalle as parameter aanvaar en die som van die vierkante van daardie getalle teruggee:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // sal 13 vertoon (resultaat 2 * 2 + 3 * 3)
Kom ons skuif die bewerking van kwadratering na
'n hulpfunksie square:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // sal 13 vertoon
Gestel ons is seker dat die funksie square
slegs in die funksie func gebruik sal word
en nêrens anders nie.
In hierdie geval sou dit gerieflik wees om te maak dat niemand dit per ongeluk gebruik nie (jy self of 'n ander programeerder wat saam met jou werk).
JavaScript het 'n elegante oplossing: ons
kan ons hulpfunksie square
binne-in func plaas. In hierdie geval
sal ons hulpfunksie slegs beskikbaar wees
binne func, en van buite af - nie.
Kom ons doen dit:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // sal 13 vertoon
'n Poging om square van buite func te roep
sal tot 'n fout lei:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! sal 'n fout gee
Maak 'n funksie func wat twee getalle as
parameters sal aanvaar, en die som van die
vierkant van die eerste getal met die derdemag van die tweede getal sal teruggee.
Maak vir hierdie doel 'n hulpfunksie
square, wat 'n getal kwadreer,
en 'n hulpfunksie cube, wat 'n getal tot die derdemag verhef.