Իրադարձության համատեքստը փոփոխականի միջոցով JavaScript-ում

Լուծումը հետևյալն է՝ արտաքին ֆունկցիայի մեջ գրենք this-ը ցանկացած փոփոխականի մեջ, և այդ փոփոխականը կհասանելի կլինի ներքին ֆունկցիայի համար, ինչպես և բոլոր փոփոխականները (սովորաբար այդ փոփոխականն անվանում են self)։ Այսպիսով մենք կփոխանցենք this-ը արտաքին ֆունկցիայից դեպի ներքինը։

javascript"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();
}
Задание 1

Ենթադրենք տրված է այսպիսի կոդ։

html<input id="elem" value="3">
javascript"use strict";

let elem = document.querySelector('#elem');
elem.addEventListener('blur', func);

function func() {
  alert( square() );
  
  function square() {
    return this.value * this.value;
  }
}

Կոդի հեղինակը ցանկանում էր, որ էլեմենտի կողմից ֆոկուսի կորստի դեպքում էկրանին արտածվի value-ից թվի քառակուսին։ Սակայն, ինչ-ինչ պատճառով ֆոկուսի կորստի դեպքում կոնսոլում սխալ է արտածվում։ Ուղղեք կոդի հեղինակի սխալը։ Գրեք տեքստ, որում դուք կբացատրեք կոդի հեղինակին, թե ինչու առաջացավ նրա սխալը։