Իրադարձության համատեքստը փոփոխականի միջոցով JavaScript-ում
Լուծումը հետևյալն է՝ արտաքին ֆունկցիայի մեջ գրենք
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-ից թվի քառակուսին։
Սակայն, ինչ-ինչ պատճառով ֆոկուսի կորստի դեպքում
կոնսոլում սխալ է արտածվում։ Ուղղեք կոդի հեղինակի սխալը։
Գրեք տեքստ, որում դուք կբացատրեք կոդի հեղինակին, թե ինչու առաջացավ
նրա սխալը։