เราต้องการเรียกใช้ฟังก์ชัน validate() นอก initValidation() โดยไม่จำเป็นต้องเรียก initValidation()
ต่อไปนี้เป็นรหัสปัญหาของเรา -
function initValidation(){
// irrelevant code here
function validate(_block){
// code here
}
} ใน JavaScript อย่างที่ทราบกันดีว่าฟังก์ชั่นไม่ได้เป็นเพียงแค่วัตถุ ดังนั้นเพื่อให้บรรลุเป้าหมายนี้ เราจึงแก้ไขโค้ดของเราในลักษณะนี้ -
function initValidation(){
// irrelevant code here
function validate(_block){
// code here
console.log(_block);
}
this.validate = validate;
} สิ่งที่ tweak นี้ทำคือมันทำให้ฟังก์ชัน parent ของเราแสดงคลาสตอนนี้ ซึ่งvalidate เป็นคุณสมบัติและเราสามารถเข้าถึงได้แบบนี้ -
const v = new initValidation();
v.validate('Hello world'); ต่อไปนี้เป็นรหัสที่สมบูรณ์พร้อมเอาต์พุต -
ตัวอย่าง
function initValidation(){
// irrelevant code here
function validate(_block){
// code here
console.log(_block);
}
this.validate = validate;
}
const v = new initValidation();
v.validate('Hello world'); ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
Hello world