bind মেথড

bind মেথড একটি ফাংশনে কনটেক্সট বাইন্ড করতে দেয়। প্রথম প্যারামিটার হিসেবে কনটেক্সট পাস করতে হয়, এবং পরবর্তী প্যারামিটারগুলো - ফাংশনের প্যারামিটার। মেথডটি একটি নতুন ফাংশন রিটার্ন করে, যার ভিতরে this পাস করা কনটেক্সটের সমান হবে।

সিনট্যাক্স

javascriptফাংশন.bind(কনটেক্সট, প্যারামিটার1, প্যারামিটার2...);

উদাহরণ

ধরুন আমাদের একটি ইনপুট আছে:

html<input id="elem" value="text">

ধরুন এই ইনপুটের রেফারেন্স ভেরিয়েবল elem-এ সংরক্ষিত আছে:

javascriptlet elem = document.querySelector('#elem');

ধরুন আমাদের নিচের ফাংশনটি funcও আছে:

javascriptfunction func(param1, param2) {
  console.log(this.value + param1 + param2);
}

চলুন bind ব্যবহার করে একটি নতুন ফাংশন বানাই, যা func ফাংশনের কপি হবে, কিন্তু এর this সর্বদা elem-এর সমান হবে:

javascriptlet newFunc = func.bind(elem);

এখন newFunc ভেরিয়েবলে একটি ফাংশন সংরক্ষিত আছে। চলুন এটিকে কল করি, প্রথম প্যারামিটার হিসেবে '1', এবং দ্বিতীয়টি হিসেবে '2' পাস করে:

javascriptnewFunc('1', '2');

চলুন সব একত্রিত করি:

javascriptlet 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-কে ওভাররাইটও করা যেতে পারে:

javascriptlet func = func.bind(elem);

আরও দেখুন

  • call মেথড,
    যা কনটেক্সট সহ ফাংশন কল করে
  • apply মেথড,
    যা কনটেক্সট সহ ফাংশন কল করে