Oʻzgaruvchi orqali kontekst JavaScriptda
Yechim quyidagicha: tashqi funksiyada
this ni istalgan o'zgaruvchiga yozamiz
va bu o'zgaruvchi ichki funksiyada ham
barcha o'zgaruvchilar kabi foydalanish mumkin bo'ladi
(odatda bu o'zgaruvchi
self deb nomlanadi). Shunday qilib, biz
this ni tashqi funksiyadan ichki funksiyaga o'tkazamiz:
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
console.log(this.value); // 'text' ni chiqaradi
let self = this; // this ni istalgan o'zgaruvchiga, masalan, self ga yozamiz
function child() {
console.log(self.value); // 'text' ni chiqaradi
}
child();
}
Quyidagi kod berilgan bo'lsin:
<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;
}
}
Kod muallifi inputning value idagi sonning kvadrati
ekranga chiqishini istagan. Biroq, noma'lum sababga ko'ra, fokus yo'qolganida
konsolda xatolik paydo bo'ladi. Kod muallifining xatosini tuzating.
Kod muallifiga uning xatosi nimadan kelib chiqqanligini tushuntirib beradigan matn yozing.