JavaScript-de iç-içe funksiýalar
Bizde iki san parametr hökmünde kabul edýän we şol sanlaryň kwadratlarynyň jemyny yzyna gaýtaryan funksiýa bar diýeliň:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // 13 çykaryar (2 * 2 + 3 * 3 netijesi)
Geliň, kwadrat derejä götermek amalyny
square ýardamçy funksiýasyna çykaryň:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // 13 çykaryar
Farz edeliň, square funksiýasy
diňe func funksiýasynda ulanyljak
we başga hiç ýerde ulanylmaýakdyr.
Bu ýagdaýda, ony hiç kimňeň düýşüňsiz ulanmazlygy (özüňiz ýa-da siziň bilen işleýän beýleki programmist) üçin amatly bolar.
JavaScript-de gözel çözüm bar: biz
ýardamçy square funksiýamyzy
func-iň içine ýerleşdirip bileris. Bu ýagda
biziň ýardamçy funksiýamyz diňe func-iň içinde
elýeterli bolar, daşynda bolsa - bolmaz.
Muny ýerine ýetireliň:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // 13 çykaryar
square funksiýasyny func funksiýasynyň daşyndan
çagyrmaga synanyşyk ýalňyşlyga getirer:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! ýalňyşlyk berer
func funksiýasyny ýasalyň, bu funksiýa parametr hökmünde
iki san alyp, birinji sanyň kwadraty bilen ikinji sanyň kubunyň
jemiň gaýtarmalydyr. Bunuň üçin bir san kwadrat derejä götermek üçin
square ýardamçy funksiýasyny we bir san kub derejä götermek üçin
cube ýardamçy funksiýasyny ýasalyň.