Kontekst muutuja kaudu JavaScriptis

Lahendus on järgmine: välimises funktsioonis salvestame this suvalisse muutujasse ja see muutuja on kättesaadav sisemises funktsioonis, nagu kõik muutujad (tavaliselt nimetatakse seda muutujat self). Nii edastame this välimisest funktsioonist sisemisse:

javascript"use strict";

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

function parent() {
  console.log(this.value); // kuvab 'text'
  
  let self = this; // salvestame this suvalisse muutujasse, näiteks self
  
  function child() {
    console.log(self.value); // kuvab 'text'
  }
  child();
}
Задание 1

Olgu antud selline kood:

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

Koodi autor soovis, et fookuse kaotamisel ekraanile kuvataks sisendi value ruut. Siiski, mingil põhjusel kuvatakse fookuse kaotamisel konsooli viga. Parandage koodi autoril olev viga. Kirjutage tekst, milles annate seletuse koodi autorile, miks tema viga tekkis.