JavaScript-de çaýryş funksiýalary
Funksiýalar başga funksiýalara parametr hökmünde geçirip bolýar. Şeýle funksiýa-parametrler çaýryşlar (callback) diýlip atlandyrylýar. Geliň olaryň bilen işlemek mysalynda göreliň.
Göz öňüne getireliň, bir funksiýa ýasamak isleýäris, ilkinji parametri hökmünde massiw alar, ikinji parametri bolsa, massiwdäki her elemente ulanjak çaýryş bolsun:
function each(arr, callback) {
// bu ýerde birnäçe kod
}
Funksiýamyzyň ýerine ýetirilişini ýazalyň:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // çaýryş funksiýasyny çagyryň
}
return result;
}
each funksiýamyz - uniwersaldyr.
Bu ýagdaýda biz oňa dürli çaýryşlary geçirip,
massiwler bilen dürli amallary ýerine ýetirip bileris.
Şol wagt funksiýamyzyň kody üýtgewsiz galar -
diňe geçirilýän çaýryşlar üýtgäp biler.
Geliň mysal üçin, funksiýamyzyň kömegi bilen birnäçe massiwdäki her element kadalaşdyralyň. Munuň üçin degişli çaýryşy parametr hökmünde geçirýäris:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Indi bolsa massiw elementlerini kuba şeýleşdireliň. Munuň üçin parametr hökmünde bu amaly ýerine ýetirýän başga bir çaýryşy geçirýäris:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Sanlar bilen massiw berlen. Biz ýasalan
each funksiýamyzyň kömegi bilen her
elementi iki esse köpeltiň.
Setirler bilen massiw berlen. Biz ýasalan
each funksiýamyzyň kömegi bilen her setirdäki
simwollary ters tertipde öwüriň.
Setirler bilen massiw berlen. Biz ýasalan
each funksiýamyzyň kömegi bilen her setiriň
ilkinji simwoly uly ediň.