Kontekst preko spremenljivke v JavaScript

Rešitev je naslednja: v zunanji funkciji zapišemo this v katero koli spremenljivko in ta spremenljivka bo dostopna v notranji funkciji, kot so vse spremenljivke (običajno to spremenljivko imenujemo self). Tako bomo prenesli this iz zunanje funkcije v notranjo:

javascript"use strict";

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

function parent() {
  console.log(this.value); // izpiše 'text'
  
  let self = this; // zapišemo this v katero koli spremenljivko, na primer v self
  
  function child() {
    console.log(self.value); // izpiše 'text'
  }
  child();
}
Задание 1

Dana je naslednja koda:

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

Avtor kode je želel, da se ob izgubi fokusa na zaslon prikaže kvadrat števila iz value vnosnega polja. Vendar se ob izgubi fokusa v konzolo izpiše napaka. Popravite napako avtorja kode. Napišite besedilo, v katerem pojasnite avtorju kode, zakaj je prišlo do napake.