ჩასმული ფუნქციები JavaScript-ში
დავუშვათ, გვაქვს ფუნქცია, რომელიც პარამეტრად იღებს ორ რიცხვს და აბრუნებს ამ რიცხვების კვადრატების ჯამს:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // გამოიტანს 13 (შედეგი 2 * 2 + 3 * 3)
მოდით, კვადრატში აყვანის ოპერაცია გამოვყოთ
დამხმარე ფუნქციაში square:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // გამოიტანს 13
დავუშვათ, დარწმუნებული ვართ, რომ ფუნქცია square
გამოყენებული იქნება მხოლოდ ფუნქციაში func
და აღარავითარ სხვაში.
ამ შემთხვევაში მოსახერხებელი იქნებოდა ისე მოგვექცია, რომ მისი შემთხვევით არავინ გამოიყენებდეს (თქვენ თვითონ ან სხვა პროგრამისტი, რომელიც მუშაობს თქვენთან ერთად).
JavaScript-ში არსებობს ელეგანტური გადაწყვეტა: შესაძლებელია
ჩვენი დამხმარე ფუნქცია square
ჩავსვათ func-ის შიგნით. ამ შემთხვევაში
ჩვენი დამხმარე ფუნქცია იქნება ხელმისაწვდომი
მხოლოდ func-ის შიგნით, ხოლო გარედან - არა.
გავაკეთოთ ეს:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // გამოიტანს 13
square-ის გამოძახების მცდელობა func-ის გარეთ
გამოიწვევს შეცდომას:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! გამოიტანს შეცდომას
გააკეთეთ ფუნქცია func, რომელიც პარამეტრებად
მიიღებს ორ რიცხვს, და დააბრუნებს პირველი რიცხვის
კვადრატის ჯამს მეორე რიცხვის კუბთან.
ამისთვის გააკეთეთ დამხმარე ფუნქცია
square, რომელიც აჰყავს რიცხვი კვადრატში,
და დამხმარე ფუნქცია cube, რომელიც აჰყავს
რიცხვი კუბში.