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