Contexto a través de una variable en JavaScript

La solución es la siguiente: en la función externa escribimos this en cualquier variable y esta variable estará disponible en la función interna, como todas las variables (normalmente esta variable se llama self). Así transmitiremos this de la función externa a la interna:

javascript"use strict";

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

function parent() {
  console.log(this.value); // mostrará 'text'
  
  let self = this; // escribamos this en cualquier variable, por ejemplo, en self
  
  function child() {
    console.log(self.value); // mostrará 'text'
  }
  child();
}
Задание 1

Supongamos que tenemos el siguiente código:

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

El autor del código quería que al perder el foco se mostrara en pantalla el cuadrado del número de value del input. Sin embargo, por alguna razón, al perder el foco se muestra un error en la consola. Corrija el error del autor del código. Escriba un texto en el que explique al autor del código por qué surgió su error.