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

การปรับนี้ทำให้ฟังก์ชันแม่กลายเป็น Class ซึ่ง validate เป็น Property เข้าถึงได้ดังนี้ −

const v = new initValidation(); v.validate('Hello world');

โค้ดเต็มพร้อม Output ด้านล่าง

ตัวอย่าง

function initValidation(){    // irrelevant code here    function validate(_block){       // code here       console.log(_block);    }    this.validate = validate; } const v = new initValidation(); v.validate('Hello world');

ผลลัพธ์

ผลลัพธ์ใน Console จะเป็น −

Hello world