JavaScript에서 변수를 통한 컨텍스트

해결책은 다음과 같습니다: 외부 함수에서 this를 어떤 변수에 기록하면 이 변수는 내부 함수에서 모든 변수처럼 접근 가능해집니다 (보통 이 변수를 self라고 부릅니다). 이렇게 하여 우리는 this를 외부 함수에서 내부 함수로 전달할 수 있습니다:

javascript"use strict";

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

function parent() {
  console.log(this.value); // 'text'를 출력합니다
  
  let self = this; // this를 어떤 변수에, 예를 들어 self에 기록합니다
  
  function child() {
    console.log(self.value); // 'text'를 출력합니다
  }
  child();
}
Задание 1

다음과 같은 코드가 주어졌습니다:

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

코드 작성자는 인풋의 value에서 숫자의 제곱이 포커스를 잃을 때 화면에 표시되기를 원했습니다. 그러나, 왜인지 포커스를 잃을 때 콘솔에 오류가 발생합니다. 코드 작성자의 오류를 수정하십시오. 코드 작성자에게 그의 오류가 왜 발생했는지 설명하는 글을 작성하십시오.