การส่งผ่าน context ผ่านพารามิเตอร์ใน JavaScript
มีอีกวิธีหนึ่งในการแก้ไขปัญหา มาเริ่มด้วยการทำให้
ฟังก์ชัน child รับ
พารามิเตอร์:
function child(param) {
// โค้ดจะอยู่ที่นี่
}
และเมื่อเรียกใช้ฟังก์ชันนี้ เราจะส่ง
this เข้าไปในฟังก์ชัน
เป็นพารามิเตอร์:
function parent() {
child(this); // ส่ง this เป็นพารามิเตอร์
function child(param) {
// ตัวแปร param จะเก็บเนื้อหาของ this ที่ถูกส่งเข้ามา
}
}
เนื่องจากเรียกใช้ child อยู่ภายใน
ฟังก์ชันหลัก (parent) ดังนั้น this ที่ถูกส่งผ่าน
จึงชี้ไปยังสิ่งที่ต้องการ จากนั้น
this นี้จะเข้าสู่พารามิเตอร์ param
และจะสามารถเข้าถึงได้ภายในฟังก์ชันในรูปแบบนี้
นี่คือโค้ดที่สมบูรณ์:
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
child(this); // ส่ง this เป็นพารามิเตอร์
function child(param) {
console.log(param.value); // แสดงค่า value ของ input
}
}
นำโค้ดจากงานก่อนหน้านี้มาและแก้ไข ปัญหาของโค้ดโดยใช้วิธีที่สองที่ได้ศึกษาไป