Kontextus változón keresztül JavaScriptben

A megoldás a következő: a külső függvényben írjuk this bármely változóba, és ez a változó elérhető lesz a belső függvényben, mint minden változó (általában ezt a változót self-nek nevezik). Így továbbítjuk this-et a külső függvényből a belsőbe:

javascript"use strict";

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

function parent() {
  console.log(this.value); // kiírja a 'text' értéket
  
  let self = this; // írjuk this bármely változóba, például self-be
  
  function child() {
    console.log(self.value); // kiírja a 'text' értéket
  }
  child();
}
Задание 1

Legyen adott a következő kód:

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;
  }
}

A kód szerzője azt szerette volna, hogy ha az input fókuszt veszt, a képernyőn megjelenjen a value négyzete. Azonban valamiért a fókuszt vesztéskor hiba jelenik meg a konzolon. Javítsd ki a kód szerzőjének hibáját. Írd le a magyarázatot, amelyben elmagyarázod a kód szerzőjének, miért következett be a hiba.