জাভাস্ক্রিপ্টে ভেরিয়েবলের মাধ্যমে কনটেক্সট
সমাধানটি নিম্নরূপ: বাইরের ফাংশনে আমরা
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 থেকে সংখ্যাটির বর্গ
স্ক্রীনে দেখানো হোক। তবে, কোন কারণে ফোকাস হারানো时
কনসোলে একটি ত্রুটি দেখায়। লেখকের কোডের ত্রুটি সংশোধন করুন।
একটি ব্যাখ্যামূলক টেক্সট লিখুন যেখানে আপনি
কোডের লেখককে ব্যাখ্যা করবেন কেন তার ত্রুটিটি
উত্পন্ন হয়েছিল।