जावास्क्रिप्ट में वेरिएबल के माध्यम से कॉन्टेक्स्ट
समाधान निम्नलिखित है: बाहरी फ़ंक्शन में
this को किसी भी वेरिएबल में लिखेंगे
और यह वेरिएबल आंतरिक फ़ंक्शन में उपलब्ध होगी,
जैसे सभी वेरिएबल्स होते हैं (आमतौर पर इस वेरिएबल को
self कहा जाता है)। इस प्रकार हम
this को बाहरी फ़ंक्शन से आंतरिक फ़ंक्शन में पास करेंगे:
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
console.log(this.value); // 'text' प्रिंट करेगा
let self = this; // this को किसी भी वेरिएबल में लिखें, उदाहरण के लिए, self में
function child() {
console.log(self.value); // 'text' प्रिंट करेगा
}
child();
}
मान लीजिए इस प्रकार का कोड दिया गया है:
<input id="elem" value="3">
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', func);
function func() {
alert( square() );
function square() {
return this.value * this.value;
}
}
कोड के लेखक चाहते थे कि फोकस खोने पर
इनपुट के value से संख्या का वर्ग
स्क्रीन पर दिखाई दे। हालाँकि, किसी कारण से फोकस खोने पर
कंसोल में एक त्रुटि दिखाई देती है। लेखक के कोड की
त्रुटि को सुधारें। एक पाठ लिखें जिसमें आप
कोड के लेखक को स्पष्टीकरण देंगे कि उनकी त्रुटि
क्यों उत्पन्न हुई।