JavaScript bind() মেথড – বাংলায় পূর্ণ টিউটোরিয়াল
bind() মেথড JavaScript-এর একটি শক্তিশালী ফিচার, যা ফাংশনের this কনটেক্সট স্থায়ীভাবে সেট করে দেয়। এটি মূলত call() এবং apply() এর মতো কাজ করে, তবে তাৎক্ষণিকভাবে ফাংশন এক্সিকিউট না করে, একটি নতুন ফাংশন রিটার্ন করে যা পরে কল করা যায়।
Syntax:
let boundFunction = originalFunction.bind(thisArg, arg1, arg2, ...)thisArg: নতুন this কনটেক্সট হিসেবে যাকে সেট করা হবে
arg1, arg2,…: (ঐচ্ছিক) ফাংশনের প্রাথমিক আর্গুমেন্ট
উদাহরণ ১: bind() দিয়ে this সেট করা
const person = {
name: "Rina",
greet: function() {
console.log("Hello, " + this.name);
}
};
const greetFunc = person.greet;
greetFunc(); // Output: Hello, undefined
const boundGreet = person.greet.bind(person);boundGreet(); // Output: Hello, Rina
ব্যাখ্যা: greetFunc() এর ক্ষেত্রে this হারিয়ে যায়, তাই আমরা bind() দিয়ে person অবজেক্টে সেট করেছি।
উদাহরণ ২: bind() দিয়ে আর্গুমেন্ট পাস করা
const multiply = function(a, b) {
return a * b;
};
const double = multiply.bind(null, 2);console.log(double(5)); // Output: 10
ব্যাখ্যা: এখানে bind() দিয়ে প্রথম আর্গুমেন্ট ২ সেট করা হয়েছে। এখন double() এ শুধু দ্বিতীয় আর্গুমেন্ট দিলেই হবে।
call(), apply(), bind() তুলনামূলক টেবিল
| মেথড | this সেট হয় | আর্গুমেন্ট পাস | ফাংশন এক্সিকিউশন |
|---|---|---|---|
| call() | তাৎক্ষণিক | কমা দিয়ে | তাৎক্ষণিক |
| apply() | তাৎক্ষণিক | array আকারে | তাৎক্ষণিক |
| bind() | স্থায়ীভাবে | কমা দিয়ে বা আংশিক | পরবর্তীতে কল করতে হয় |
bind() এর ব্যবহার ক্ষেত্র
- যখন
thisঠিক রাখতে হবে asynchronous callback এর মধ্যে - setTimeout বা setInterval এ ব্যবহারের সময়
- event listener এ নিজস্ব context বজায় রাখতে
- partial function তৈরি করতে
bind() ব্যবহার setTimeout এ
const person = {
name: "Nila",
speak: function() {
console.log("I am " + this.name);
}
};
setTimeout(person.speak.bind(person), 2000);
// Output after 2 seconds: I am Nila
উপসংহার:
JavaScript-এর bind() মেথড অসাধারণ একটি টুল, যা ফাংশনের context নিশ্চিত করতে ব্যবহার হয়। এটি asynchronous প্রোগ্রামিং বা event-driven কোডে ভাল নিয়ন্ত্রণ ও code reusability নিশ্চিত করে।