JavaScript'te İç İçe Fonksiyonlar
Diyelim ki parametre olarak iki sayı alan ve bu sayıların karelerinin toplamını döndüren bir fonksiyonumuz var:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // 13 yazacaktır (2 * 2 + 3 * 3 sonucu)
Karesini alma işlemini square adlı
yardımcı bir fonksiyona çıkaralım:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // 13 yazacaktır
Diyelim ki square fonksiyonunun
sadece func fonksiyonunda kullanılacağından
ve başka hiçbir yerde kullanılmayacağından eminiz.
Bu durumda, onun yanlışlıkla kimse tarafından kullanılmamasını (siz kendiniz veya birlikte çalıştığınız başka bir programcı) sağlamak uygun olurdu.
JavaScript'te zarif bir çözüm var:
yardımcı square fonksiyonumuzu
func fonksiyonunun içine yerleştirebiliriz. Bu durumda
yardımcı fonksiyonumuz sadece
func fonksiyonunun içinden erişilebilir olacak,
dışından ise olmayacak.
Bunu yapalım:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // 13 yazacaktır
square fonksiyonunu func fonksiyonunun dışından
çağırma girişimi hataya yol açacaktır:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! hata verecek
İki sayıyı parametre olarak alan ve ilk sayının karesi ile
ikinci sayının küpünün toplamını döndüren bir func fonksiyonu yapın.
Bunun için bir sayının karesini alan
square yardımcı fonksiyonunu
ve bir sayının küpünü alan cube yardımcı fonksiyonunu yapın.