জাভাস্ক্রিপ্টে OOP-তে পদ্ধতি কোডে প্রসঙ্গ হারানো

একটি ক্লাসের পদ্ধতির মূল কোড ব্যবহার করার সময় প্রসঙ্গ হারাতে পারে। আসুন একটি উদাহরণ দিয়ে দেখি। ধরুন আমাদের নিম্নলিখিত ক্লাসটি আছে:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  getName() {
    return this.#name;
  }
}

এই ক্লাসের একটি অবজেক্ট তৈরি করি:

javascriptlet user = new User('john');

একটি ভেরিয়েবলে পদ্ধতির কোড লিখি:

javascriptlet func = user.getName;

পদ্ধতির কোড একটি ভেরিয়েবলে লেখার মুহূর্তে প্রসঙ্গ হারিয়ে গেছে। এখন this পদ্ধতি কোডের ভিতরে ক্লাসের অবজেক্টটিকে ইঙ্গিত করবে না। আসুন পরীক্ষা করি, আমাদের ফাংশনটি কল করি:

javascriptconsole.log(func()); // ত্রুটি

সমস্যার সমাধানের জন্য, আমরা ফাংশনে প্রসঙ্গ বাঁধতে পারি, উদাহরণস্বরূপ, bind এর মাধ্যমে:

javascriptfunc = func.bind(user);
console.log(func()); // কাজ করে