ฟังก์ชัน JavaScript ไม่ได้กำหนดข้อผิดพลาด (แต่ถูกกำหนดไว้แล้ว)

Fangkchan Javascript Mi Di Kahnd Khx Phid Phlad Tae Thuk Kahnd Wi Laew



ในจาวาสคริปต์ “ ไม่ได้กำหนดฟังก์ชัน ” เป็นข้อผิดพลาดทั่วไปที่เกิดขึ้นเมื่อโปรแกรมพยายามใช้ฟังก์ชันที่ไม่ได้ประกาศหรือกำหนดไว้ในขอบเขตปัจจุบัน ข้อความแสดงข้อผิดพลาดนี้อาจสร้างความสับสนได้เนื่องจากบางครั้งฟังก์ชันถูกกำหนดไว้ในโค้ดแล้ว แต่ก็ยังส่งผลให้เกิดข้อผิดพลาด

บทความนี้จะอธิบายถึง 'ข้อผิดพลาดที่ไม่ได้กำหนดฟังก์ชัน' ของ 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 (แต่มีการกำหนดไว้แล้ว)