JavaScript-də Callback Funksiyaları
Funksiyalar digər funksiyalara parametr kimi ötürülə bilər. Belə parametr-funksiyalar callback adlanır (callback). Gəlin onlarla işi bir nümunə ilə görək.
Tutaq ki, biz elə bir funksiya etmək istəyirik ki, ilk parametri massiv, ikinci parametri isə callback olsun və o, hər bir massiv elementinə tətbiq olunsun:
function each(arr, callback) {
// burada hansısa kod
}
Gəlin funksiyamızın realizasiyasını yazaq:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // callback funksiyasını çağırırıq
}
return result;
}
Bizim each funksiyamız universaldır.
Bu o deməkdir ki, biz ona
müxtəlif callback-lər ötürərək, massivlər üzərində
müxtəlif əməliyyatlar yerinə yetirə bilərik.
Bununla belə funksiyamızın kodu dəyişməz qalacaq -
yalnız ötürülən callback-lər dəyişəcək.
Gəlin nümunə üçün funksiyamızın köməyi ilə hansısa massivin hər bir elementinin kvadratını alaq. Bunun üçün uyğun callback-i parametr kimi ötürək:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
İndi isə massivin elementlərini kuba yüksəldək. Bunun üçün parametr kimi bu əməliyyatı yerinə yetirən artıq başqa bir callback ötürəcəyik:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Ədədlərdən ibarət massiv verilib. Bizim yaratdığımız
each funksiyasının köməyi ilə hər bir
elementi iki dəfə artırın.
Sətirlərdən ibarət massiv verilib. Bizim yaratdığımız
each funksiyasının köməyi ilə hər bir sətrin
simvollarını tərs ardıcıllıqla çevirin.
Sətirlərdən ibarət massiv verilib. Bizim yaratdığımız
each funksiyasının köməyi ilə hər bir sətrin
ilk simvolunu böyük hərflə yazın.