Context ผ่านตัวแปรใน 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 ของ input ขึ้นบนหน้าจอ อย่างไรก็ตาม ด้วยเหตุผลบางประการ เมื่อสูญเสียโฟกัส ข้อผิดพลาดจะปรากฏในคอนโซล แก้ไขข้อผิดพลาด ของผู้เขียนโค้ด เขียนข้อความที่คุณจะ ให้คำอธิบายแก่ผู้เขียนโค้ดว่าทำไมข้อผิดพลาดของเขาถึงเกิดขึ้น