ფუნქციების პარამეტრებად გადაცემა JavaScript-ში
ფუნქციებს, რიცხვების, სტრიქონების და მასივების მსგავსად, შეუძლიათ სხვა ფუნქციებში პარამეტრებად გადაეცემინათ.
განვიხილოთ ეს უფრო დეტალურად პრაქტიკული მაგალითით.
დავუშვათ, გვაქვს ფუნქცია test, რომელიც იღებს
ორ პარამეტრს:
test(პარამეტრი1, პარამეტრი2);
მოდით, ფუნქციის test პირველ პარამეტრში
გადავცეთ ანონიმური ფუნქცია, რომელიც აბრუნებს
1-ს, ხოლო მეორე პარამეტრში - ანონიმურ
ფუნქციას, რომელიც აბრუნებს 2-ს:
test(
function() {return 1;},
function() {return 2;}
);
ზემოთ მოყვანილი კოდი ჯერ არ მუშაობს, რადგან თავად ფუნქცია ჯერ არ შევქმენით. შევქმნათ ის:
function test(func1, func2) {
}
ფუნქციის განსაზღვრისას ჩვენ მივუთითეთ ორი პარამეტრი
- func1 და func2. ეს პარამეტრები
არ იციან იმის შესახებ, თუ რა გადაეცემა მათ.
შეგვიძლია, მაგალითად, გადავცეთ რიცხვები:
test(1, 2); // ვიძახებთ ფუნქციას
function test(func1, func2) {
console.log(func1); // გამოიტანს 1-ს
console.log(func2); // გამოიტანს 2-ს
}
ან შეგვიძლია გადავცეთ ფუნქციები:
test(
function() {return 1;}, // პირველი პარამეტრი
function() {return 2;} // მეორე პარამეტრი
);
function test(func1, func2) {
console.log(func1); // გამოიტანს 'function() {return 1;}'-ს
console.log(func2); // გამოიტანს 'function() {return 2;}'-ს
}
როგორც ხედავთ, ახლა კონსოლში ფუნქციების საწყისი კოდი გამოიტანს. მოდით, გავაკეთოთ ისე, რომ მათი შედეგები გამოიტანოს. ამისთვის ფუნქციებს მრგვალი ფრჩხილები დავუწეროთ:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // გამოიტანს 1-ს
console.log( func2() ); // გამოიტანს 2-ს
}
მოდით, კონსოლში გამოვიტანოთ პირველი და მეორე ფუნქციების შედეგების ჯამი:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // გამოიტანს 3-ს
}
შექმენით ფუნქცია test, რომელიც პარამეტრებად
იღებს 3 ფუნქციას. გადაეცით მას
პირველ პარამეტრად ფუნქცია, რომელიც აბრუნებს
1-ს, მეორედ - ფუნქცია, რომელიც აბრუნებს
2-ს, მესამედ - ფუნქცია, რომელიც აბრუნებს
3-ს. გამოიტანეთ კონსოლში ფუნქციების
შედეგების ჯამი.