บทความนี้จะอธิบายถึง 'ข้อผิดพลาดที่ไม่ได้กำหนดฟังก์ชัน' ของ JavaScript ในขณะที่มีการกำหนด
ฟังก์ชัน JavaScript ไม่ได้กำหนดข้อผิดพลาด (แต่ถูกกำหนดไว้แล้ว)
บางครั้ง ฟังก์ชันถูกกำหนดไว้ในโค้ด แต่ถึงกระนั้น คุณก็ยังพบข้อผิดพลาดต่อไปนี้ได้:
มีสองสาเหตุหลักที่ทำให้เกิดข้อผิดพลาดข้างต้นหลังจากกำหนดฟังก์ชัน ซึ่งแสดงรายการด้านล่าง:
เหตุผลที่ 1: ฟังก์ชันสะกดผิดหรือมีการใช้อักษรตัวพิมพ์ใหญ่ไม่ถูกต้อง
บางครั้ง ฟังก์ชันถูกเรียกโดยสะกดผิด เนื่องจาก JavaScript เป็นภาษาที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ตัวแปล JavaScript ไม่พบสิ่งนั้นและโยน ' ไม่ได้กำหนดฟังก์ชัน ' ข้อผิดพลาด.
ตัวอย่าง
ขั้นแรก เราจะกำหนดฟังก์ชัน “ ซัมเมอร์ ” ที่ส่งคืนผลรวมของตัวเลขสองตัว “ ก ' และ ' ข ”:
ผลรวมของฟังก์ชัน ( ก ข ) {กลับ ก + ข ;
}
เรียกใช้ฟังก์ชัน “ ซัมเมอร์ ' เช่น ' ผลรวม ” โดยผ่านหมายเลข “ 4 ' และ ' 7 ”:
คอนโซล บันทึก ( ผลรวม ( 4 , 7 ) )
มันจะส่งข้อผิดพลาด “ ไม่ได้กำหนดผลรวม ”:
จะแก้ไขได้อย่างไร?
ในการแก้ไขข้อผิดพลาดนี้ ตรวจสอบให้แน่ใจว่าสะกดชื่อฟังก์ชันถูกต้องและมีการใช้อักษรตัวพิมพ์ใหญ่ที่ถูกต้อง:
คอนโซล บันทึก ( ซัมเมอร์ ( 4 , 7 ) ) ;ตอนนี้ ฟังก์ชั่น “ ซัมเมอร์ ” ได้รับการเรียกและพิมพ์ผลรวมของสองหมายเลขเรียบร้อยแล้ว “ 4 ' และ ' 7 ”:
เหตุผลที่ 2: ฟังก์ชันถูกกำหนดในขอบเขตที่แตกต่างกัน
ใน JavaScript แต่ละฟังก์ชันมีขอบเขต และฟังก์ชันหนึ่งๆ สามารถเข้าถึงตัวแปรและฟังก์ชันที่กำหนดไว้ในขอบเขตของตัวเองเท่านั้น หากฟังก์ชันถูกกำหนดในขอบเขตอื่น ขอบเขตปัจจุบันอาจไม่สามารถเข้าถึงได้ ส่งผลให้ ' ไม่ได้กำหนดฟังก์ชัน ' ข้อผิดพลาด.
ตัวอย่าง
กำหนดฟังก์ชัน “ ผลรวม () ” ด้วยสองพารามิเตอร์ “ ก ' และ ' ข ” ภายในฟังก์ชั่น “ พิมพ์() ”:
พิมพ์ฟังก์ชั่น ( ) {ผลรวมของฟังก์ชัน ( ก ข ) {
คอนโซล บันทึก ( ก + ข ) ;
}
}
เรียกใช้ฟังก์ชัน “ ผลรวม () ”:
ผลรวม ( 5 , 10 ) ;มันให้ข้อผิดพลาดเนื่องจากผลรวม () ถูกกำหนดภายในฟังก์ชัน print () แต่เข้าถึงได้จากภายนอกจากขอบเขต:
จะแก้ไขได้อย่างไร?
ตรวจสอบให้แน่ใจว่ามีการกำหนดฟังก์ชันในขอบเขตที่เหมาะสมและสามารถเข้าถึงได้จากตำแหน่งที่กำลังเรียกใช้ ตัวอย่างเช่น ถ้าฟังก์ชันถูกกำหนดไว้ภายในฟังก์ชันอื่น ฟังก์ชันนั้นอาจไม่สามารถเข้าถึงได้จากภายนอก
เรียกใช้ sum() ภายในฟังก์ชัน print() หลังจากกำหนด:
พิมพ์ฟังก์ชั่น ( ) {ผลรวมของฟังก์ชัน ( ก ข ) {
คอนโซล บันทึก ( ก + ข ) ;
}
ผลรวม ( 1 , 4 ) ;
}
เรียกใช้เมธอด print():
พิมพ์ ( ) ;เอาต์พุต
หรือคุณสามารถกำหนดฟังก์ชันแยกกันและเรียกใช้ในขอบเขตของฟังก์ชันอื่นได้ดังนี้
ผลรวมของฟังก์ชัน ( ก ข ) {คอนโซล บันทึก ( ก + ข ) ;
}
ในที่นี้ เราจะเรียก sum() ภายในฟังก์ชัน print() ดังนี้
พิมพ์ฟังก์ชั่น ( ) {ผลรวม ( 5 , 10 ) ;
}
เรียกใช้เมธอด print() เพื่อเรียกใช้งานฟังก์ชัน “ ผลรวม () ”:
พิมพ์ ( ) ;ผลรวมของสองจำนวน “ 5 ' และ ' 10 ” ได้รับการแสดง:
เราได้กล่าวถึงเหตุผลและวิธีแก้ปัญหาสำหรับ JavaScript “ ฟังก์ชันไม่ได้กำหนดข้อผิดพลาด ” (แต่มันถูกกำหนดไว้).
บทสรุป
มีเหตุผลหลักสองประการที่ทำให้ “ ไม่ได้กำหนดฟังก์ชัน ” เกิดข้อผิดพลาดหลังจากกำหนดฟังก์ชัน เช่น “ ฟังก์ชันสะกดผิดหรือใช้อักษรตัวพิมพ์ใหญ่ไม่ถูกต้อง ” หรือ “ ฟังก์ชันถูกกำหนดในขอบเขตที่แตกต่างกัน '. บทความนี้ระบุสาเหตุและแนวทางแก้ไขสำหรับ 'ฟังก์ชันที่ไม่ได้กำหนดข้อผิดพลาด' ของ JavaScript (แต่มีการกำหนดไว้แล้ว)