Kontext via variabel i JavaScript

Lösningen är följande: i den yttre funktionen skriver vi this till valfri variabel och denna variabel kommer att vara tillgänglig i den inre funktionen, som alla variabler (vanligtvis kallas denna variabel self). På så sätt överför vi this från den yttre funktionen till den inre:

javascript"use strict";

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

function parent() {
  console.log(this.value); // skriver ut 'text'
  
  let self = this; // skriver this till valfri variabel, till exempel self
  
  function child() {
    console.log(self.value); // skriver ut 'text'
  }
  child();
}
Задание 1

Anta att vi har följande kod:

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

Författaren av koden ville att vid förlust av fokus ska kvadraten på talet från value i inputfältet visas på skärmen. Men av någon anledning visas ett fel i konsolen vid förlust av fokus. Råtta författarens fel. Skriv en text där du ger en förklaring till författaren om varför hans fel uppstod.