Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

มีวิธีใดบ้างที่ฉันสามารถเรียกใช้ฟังก์ชัน validate() นอกฟังก์ชัน initValidation() ใน JavaScript


เราต้องการเรียกใช้ฟังก์ชัน 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