Contexto via variável em JavaScript

A solução é a seguinte: na função externa, vamos atribuir this a uma variável qualquer e essa variável estará acessível na função interna, assim como todas as outras variáveis (normalmente, essa variável é chamada de self). Dessa forma, passaremos this da função externa para a interna:

javascript"use strict";

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

function parent() {
  console.log(this.value); // exibirá 'text'
  
  let self = this; // vamos atribuir this a uma variável qualquer, por exemplo, self
  
  function child() {
    console.log(self.value); // exibirá 'text'
  }
  child();
}
Задание 1

Suponha o seguinte 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;
  }
}

O autor do código queria que, ao perder o foco, o quadrado do número de value do input fosse exibido na tela. No entanto, por algum motivo, ao perder o foco, um erro é lançado no console. Corrija o erro do autor do código. Escreva um texto explicando para o autor do código por que seu erro ocorreu.