JavaScript-da o'q funktsiyalaridan foydalanish
O'q funktsiyalari callback (qayta chaqiruv) lar sifatida alohida afzallikga ega.
Keling, bunday holatda kod qanchalik soddalashishini bir misolda ko'ramiz.
Misol uchun bizda quyidagi filter funktsiyasi mavjud deb faraz qilaylik:
function filter(arr, callback) {
let res = [];
for (let elem of arr) {
if ( callback(elem) === true ) {
res.push(elem);
}
}
return res;
}
Keling, bu funktsiyani callback (qayta chaqiruv) berib chaqiramiz:
let result = filter([1, 2, 3, 4, 5], function(elem) {
if (elem % 2 === 0) {
return true;
} else {
return false;
}
});
Keling, endi bizning funktsiyamizni soddalashtiraylik.
Avvalo, if tuzilmasidan xalos bo'laylik
va shartni shunchaki === operatori orqali yozamiz:
let result = filter([1, 2, 3, 4, 5], function(elem) {
return elem % 2 == 0;
});
Keling, endi oddiy funktsiyani o'q funktsiyasiga almashtiramiz:
let result = filter([1, 2, 3, 4, 5], elem => elem % 2 == 0);
Quyidagi callback (qayta chaqiruv) li funktsiya berilgan:
let result = filter([1, 2, 3, 4, 5], function(elem) {
if (elem > 0) {
return true;
} else {
return false;
}
});
Callback (qayta chaqiruv) ni o'q funktsiyasi orqali soddalashtiring.