JavaScript में 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()); // काम करता है