bind মেথড
bind মেথড একটি ফাংশনে কনটেক্সট বাইন্ড করতে দেয়।
প্রথম প্যারামিটার হিসেবে কনটেক্সট পাস করতে হয়,
এবং পরবর্তী প্যারামিটারগুলো - ফাংশনের প্যারামিটার।
মেথডটি একটি নতুন ফাংশন রিটার্ন করে,
যার ভিতরে this পাস করা কনটেক্সটের সমান হবে।
সিনট্যাক্স
ফাংশন.bind(কনটেক্সট, প্যারামিটার1, প্যারামিটার2...);
উদাহরণ
ধরুন আমাদের একটি ইনপুট আছে:
<input id="elem" value="text">
ধরুন এই ইনপুটের রেফারেন্স ভেরিয়েবল
elem-এ সংরক্ষিত আছে:
let elem = document.querySelector('#elem');
ধরুন আমাদের নিচের ফাংশনটি
funcও আছে:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
চলুন bind ব্যবহার করে একটি নতুন
ফাংশন বানাই, যা func ফাংশনের কপি হবে,
কিন্তু এর this সর্বদা elem-এর সমান হবে:
let newFunc = func.bind(elem);
এখন newFunc ভেরিয়েবলে একটি
ফাংশন সংরক্ষিত আছে। চলুন এটিকে কল করি, প্রথম
প্যারামিটার হিসেবে '1', এবং দ্বিতীয়টি হিসেবে '2' পাস করে:
newFunc('1', '2');
চলুন সব একত্রিত করি:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // আউটপুট দেবে 'text12'
উদাহরণ
bind-এর কাজের ফলাফল একটি নতুন ফাংশন
newFunc-এ সংরক্ষণ করা বাধ্যতামূলক নয়,
শুধু func-কে ওভাররাইটও করা যেতে পারে:
let func = func.bind(elem);