Lỗi chức năng JavaScript không được xác định (NHƯNG NÓ ĐƯỢC XÁC ĐỊNH)

Loi Chuc Nang Javascript Khong Duoc Xac Dinh Nhung No Duoc Xac Dinh



Trong JavaScript, “ chức năng không được xác định ” là một lỗi phổ biến xảy ra khi chương trình cố gắng sử dụng một chức năng chưa được khai báo hoặc xác định trong phạm vi hiện tại. Thông báo lỗi này có thể gây nhầm lẫn vì đôi khi chức năng thực sự được xác định trong mã, nhưng nó vẫn dẫn đến lỗi.

Bài viết này sẽ mô tả “lỗi không xác định hàm” JavaScript trong khi nó được xác định.

Lỗi chức năng JavaScript không được xác định (NHƯNG NÓ ĐƯỢC XÁC ĐỊNH)

Đôi khi, chức năng được xác định trong mã, nhưng bạn vẫn có thể gặp phải lỗi sau:









Có hai lý do chính khiến lỗi trên xảy ra sau khi xác định hàm, được liệt kê bên dưới:



Lý do 1: Hàm viết sai chính tả hoặc viết hoa sai

Đôi khi, chức năng được gọi với cách viết sai. Vì JavaScript là ngôn ngữ phân biệt chữ hoa chữ thường, trình thông dịch JavaScript không thể tìm thấy ngôn ngữ đó và đưa ra “ chức năng không được xác định ' lỗi.





Ví dụ

Đầu tiên, chúng ta sẽ định nghĩa một hàm “ tóm tắt ” trả về tổng của hai số “ Một ' Và ' b ”:

tổng hàm ( một, b ) {

trở lại Một + b ;

}

Gọi hàm “ tóm tắt ' BẰNG ' Tổng ” bằng cách chuyển số “ 4 ' Và ' 7 ”:



bảng điều khiển. đăng nhập ( Tổng ( 4 , 7 ) )

Nó sẽ báo lỗi “ tổng không được xác định ”:

Làm thế nào để khắc phục nó?

Để khắc phục lỗi này, hãy đảm bảo rằng tên hàm được viết đúng chính tả và có cách viết hoa chính xác:

bảng điều khiển. đăng nhập ( tóm tắt ( 4 , 7 ) ) ;

Bây giờ, chức năng “ tóm tắt ” đã được gọi thành công và in ra tổng của hai số “ 4 ' Và ' 7 ”:

Lý do 2: Chức năng được xác định trong một phạm vi khác

Trong JavaScript, mỗi hàm có phạm vi của nó và một hàm chỉ có thể truy cập các biến và hàm được xác định trong phạm vi của chính nó. Nếu một chức năng được xác định trong một phạm vi khác, nó có thể không truy cập được trong phạm vi hiện tại, dẫn đến lỗi “ chức năng không được xác định ' lỗi.

Ví dụ

Định nghĩa một chức năng “ Tổng() ” với hai tham số “ Một ' Và ' b ” bên trong chức năng “ in() ”:

chức năng in ( ) {

tổng hàm ( một, b ) {

bảng điều khiển. đăng nhập ( Một + b ) ;

}

}

Gọi hàm “ Tổng() ”:

Tổng ( 5 , 10 ) ;

Nó báo lỗi vì sum() được định nghĩa bên trong hàm print() nhưng được truy cập bên ngoài từ phạm vi:

Làm thế nào để khắc phục nó?

Đảm bảo chức năng được xác định trong phạm vi thích hợp và có thể được truy cập từ nơi nó được gọi. Ví dụ: nếu chức năng được xác định bên trong một chức năng khác, thì có thể không truy cập được từ bên ngoài.

Gọi hàm sum() bên trong hàm print() sau khi xác định nó:

chức năng in ( ) {

tổng hàm ( một, b ) {

bảng điều khiển. đăng nhập ( Một + b ) ;

}

Tổng ( 1 , 4 ) ;

}

Gọi phương thức print():

in ( ) ;

đầu ra

Hoặc bạn cũng có thể định nghĩa riêng hàm và gọi nó trong phạm vi của hàm khác như sau:

tổng hàm ( một, b ) {

bảng điều khiển. đăng nhập ( Một + b ) ;

}

Ở đây, chúng ta sẽ gọi hàm sum() bên trong hàm print():

chức năng in ( ) {

Tổng ( 5 , 10 ) ;

}

Gọi phương thức print() để thực thi hàm “ Tổng() ”:

in ( ) ;

Tổng của hai số “ 5 ' Và ' 10 ” đã được hiển thị:

Chúng tôi đã thảo luận về lý do và giải pháp cho JavaScript “ chức năng không xác định lỗi ” (nhưng nó được xác định).

Phần kết luận

Có hai lý do chính giải thích tại sao “ chức năng không được xác định ” xảy ra lỗi sau khi xác định chức năng, chẳng hạn như “ chức năng bị sai chính tả hoặc viết hoa không chính xác ' hoặc là ' chức năng được xác định trong một phạm vi khác ”. Bài viết này đã xác định lý do và giải pháp cho “lỗi không xác định hàm” JavaScript (nhưng nó đã được xác định).