JavaScriptda Funktsiyalarni Parametr sifatida O‘tkazish
Funktsiyalar, sonlar, satrlar va massivlar singari, boshqa funktsiyalarga parametr sifatida o‘tkazilishi mumkin.
Buni amaliy misolda batafsil ko‘rib chiqaylik.
Faraz qilaylik, bizda ikkita parametr qabul qiladigan
test funktsiyasi mavjud:
test(parametr1, parametr2);
Keling, test funktsiyasining birinchi parametriga
1ni qaytaradigan anonim funktsiyani, ikkinchi parametriga esa
2ni qaytaradigan anonim
funktsiyani o‘tkazamiz:
test(
function() {return 1;},
function() {return 2;}
);
Yuqoridagi kod hali ishlamaydi, chunki biz funktsiyaning o‘zini yaratmadik. Buni amalga oshiramiz:
function test(func1, func2) {
}
Funktsiyani aniqlashda biz ikkita parametrni
ko‘rsatdik - func1 va func2. Ushbu parametrlar
ularga nima o‘tkazilishidan bexabar. Masalan, raqamlarni o‘tkazishimiz mumkin:
test(1, 2); // funktsiyani chaqiramiz
function test(func1, func2) {
console.log(func1); // 1 ni chiqaradi
console.log(func2); // 2 ni chiqaradi
}
Yoki funktsiyalarni o‘tkazishimiz mumkin:
test(
function() {return 1;}, // birinchi parametr
function() {return 2;} // ikkinchi parametr
);
function test(func1, func2) {
console.log(func1); // 'function() {return 1;}' ni chiqaradi
console.log(func2); // 'function() {return 2;}' ni chiqaradi
}
Ko‘rib turganingizdek, endi konsolga funktsiyalarning dastlabki kodi chiqariladi. Keling, ularning natijalarini chiqarishini ta'minlaylik. Buning uchun funktsiyalarga dumaloq qavslar qo‘shamiz:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // 1 ni chiqaradi
console.log( func2() ); // 2 ni chiqaradi
}
Keling, birinchi va ikkinchi funktsiyalar natijalari yig‘indisini konsolga chiqaramiz:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // 3 ni chiqaradi
}
test funktsiyasini yarating, uning parametrlari sifatida
3 ta funktsiya qabul qilinsin. Unga
birinchi parametr sifatida 1ni qaytaradigan funktsiyani,
ikkinchisi - 2ni qaytaradigan funktsiyani,
uchinchisi - 3ni qaytaradigan funktsiyani o‘tkazing. Konsolga funktsiyalar
natijalari yig‘indisini chiqaring.