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