JavaScript-da oklu funksiýalaryň ulanylyşy
Oklu funksiýalar, call-back funksiýalary hökmünde ýörite üstünlüge eýedir. Geliň, munuň ýaly ýagdaýda kodyň näçe ýönekeýleşdirilýändigini mysalda göreli. Mysal üçin, bizde aşakdaky filter funksiýasy bardyr:
function filter(arr, callback) {
let res = [];
for (let elem of arr) {
if ( callback(elem) === true ) {
res.push(elem);
}
}
return res;
}
Bu funksiýany çagyryp, oňa call-back ibereli:
let result = filter([1, 2, 3, 4, 5], function(elem) {
if (elem % 2 === 0) {
return true;
} else {
return false;
}
});
Indi funksiýamyzy ýönekeýleşdirmäge synanyşalyň. Ilki bilen, if gurluşyndan halas bolalyň we şertimizi diňe === operatory arkaly ýazalyň:
let result = filter([1, 2, 3, 4, 5], function(elem) {
return elem % 2 == 0;
});
Indi adaty funksiýany oklu funksiýa bilen çalşyryň:
let result = filter([1, 2, 3, 4, 5], elem => elem % 2 == 0);
Aşakdaky call-back-li funksiýa berlen:
let result = filter([1, 2, 3, 4, 5], function(elem) {
if (elem > 0) {
return true;
} else {
return false;
}
});
Call-back-i oklu funksiýa arkaly ýönekeýleşdiriň.