ფუნქციების პარამეტრებად გადაცემა JavaScript-ში

ფუნქციებს, რიცხვების, სტრიქონების და მასივების მსგავსად, შეუძლიათ სხვა ფუნქციებში პარამეტრებად გადაეცემინათ.

განვიხილოთ ეს უფრო დეტალურად პრაქტიკული მაგალითით. დავუშვათ, გვაქვს ფუნქცია test, რომელიც იღებს ორ პარამეტრს:

javascripttest(პარამეტრი1, პარამეტრი2);

მოდით, ფუნქციის test პირველ პარამეტრში გადავცეთ ანონიმური ფუნქცია, რომელიც აბრუნებს 1-ს, ხოლო მეორე პარამეტრში - ანონიმურ ფუნქციას, რომელიც აბრუნებს 2-ს:

javascripttest(
  function() {return 1;},
  function() {return 2;}
);

ზემოთ მოყვანილი კოდი ჯერ არ მუშაობს, რადგან თავად ფუნქცია ჯერ არ შევქმენით. შევქმნათ ის:

javascriptfunction test(func1, func2) {
  
}

ფუნქციის განსაზღვრისას ჩვენ მივუთითეთ ორი პარამეტრი - func1 და func2. ეს პარამეტრები არ იციან იმის შესახებ, თუ რა გადაეცემა მათ. შეგვიძლია, მაგალითად, გადავცეთ რიცხვები:

javascripttest(1, 2); // ვიძახებთ ფუნქციას

function test(func1, func2) {
  console.log(func1); // გამოიტანს 1-ს
  console.log(func2); // გამოიტანს 2-ს
}

ან შეგვიძლია გადავცეთ ფუნქციები:

javascripttest(
  function() {return 1;}, // პირველი პარამეტრი
  function() {return 2;}  // მეორე პარამეტრი
);

function test(func1, func2) {
  console.log(func1); // გამოიტანს 'function() {return 1;}'-ს
  console.log(func2); // გამოიტანს 'function() {return 2;}'-ს
}

როგორც ხედავთ, ახლა კონსოლში ფუნქციების საწყისი კოდი გამოიტანს. მოდით, გავაკეთოთ ისე, რომ მათი შედეგები გამოიტანოს. ამისთვის ფუნქციებს მრგვალი ფრჩხილები დავუწეროთ:

javascripttest(
  function() {return 1;},
  function() {return 2;}
);

function test(func1, func2) {
  console.log( func1() ); // გამოიტანს 1-ს
  console.log( func2() ); // გამოიტანს 2-ს
}

მოდით, კონსოლში გამოვიტანოთ პირველი და მეორე ფუნქციების შედეგების ჯამი:

javascripttest(
  function() {return 1;},
  function() {return 2;}
);

function test(func1, func2) {
  console.log( func1() + func2() ); // გამოიტანს 3-ს
}
Задание 1

შექმენით ფუნქცია test, რომელიც პარამეტრებად იღებს 3 ფუნქციას. გადაეცით მას პირველ პარამეტრად ფუნქცია, რომელიც აბრუნებს 1-ს, მეორედ - ფუნქცია, რომელიც აბრუნებს 2-ს, მესამედ - ფუნქცია, რომელიც აბრუნებს 3-ს. გამოიტანეთ კონსოლში ფუნქციების შედეგების ჯამი.