জাভাস্ক্রিপ্টে কলব্যাক ফাংশন
ফাংশনগুলিকে প্যারামিটার হিসাবে অন্য ফাংশনে পাঠানো যায়। এই ধরনের ফাংশন-প্যারামিটারগুলিকে কলব্যাক (callback) বলা হয়। আসুন একটি উদাহরণ দিয়ে তাদের সাথে কাজ করা দেখি।
ধরুন আমরা একটি ফাংশন তৈরি করতে চাই যা প্রথম প্যারামিটার হিসেবে একটি অ্যারে নেবে, এবং দ্বিতীয় প্যারামিটার হিসেবে একটি কলব্যাক নেবে, যা অ্যারের প্রতিটি উপাদানের উপর প্রয়োগ করা হবে:
javascriptfunction each(arr, callback) {
// এখানে কিছু কোড
}
আসুন আমাদের ফাংশনের বাস্তবায়ন লিখি:
javascriptfunction each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // কলব্যাক ফাংশনটি কল করা হচ্ছে
}
return result;
}
আমাদের each ফাংশনটি - সার্বজনীন।
এর মানে হল যে আমরা এতে বিভিন্ন কলব্যাক পাঠাতে পারি, অ্যারেতে বিভিন্ন অপারেশন সম্পাদন করতে পারি। একই সময়ে আমাদের ফাংশনের কোড অপরিবর্তিত থাকবে - শুধুমাত্র পাঠানো কলব্যাকগুলি পরিবর্তিত হবে।
উদাহরণস্বরূপ, আসুন আমাদের ফাংশন ব্যবহার করে একটি অ্যারের প্রতিটি উপাদানকে বর্গ করি। এর জন্য আমরা সংশ্লিষ্ট কলব্যাকটি প্যারামিটার হিসেবে পাঠাব:
javascriptlet result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
এবং এখন অ্যারের উপাদানগুলিকে ঘনক করি। এর জন্য আমরা প্যারামিটার হিসেবে একটি ভিন্ন কলব্যাক পাঠাব, যা এই অপারেশনটি সম্পাদন করে:
javascriptlet result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
একটি সংখ্যার অ্যারে দেওয়া আছে। আমরা তৈরি করা
each ফাংশন ব্যবহার করে প্রতিটি
উপাদানকে দ্বিগুণ করুন।
একটি স্ট্রিং এর অ্যারে দেওয়া আছে। আমরা তৈরি করা
each ফাংশন ব্যবহার করে প্রতিটি স্ট্রিংয়ের
অক্ষরগুলো উল্টো ক্রমে রাখুন।
একটি স্ট্রিং এর অ্যারে দেওয়া আছে। আমরা তৈরি করা
each ফাংশন ব্যবহার করে প্রতিটি স্ট্রিংয়ের
প্রথম অক্ষরটি বড় হাতের করুন।