MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Bản dịch này chưa hoàn thành. Xin hãy giúp dịch bài viết này từ tiếng Anh.

Message

TypeError: "x" is not a function

Thể loại sai:

TypeError.

Chuyện gì đã xảy ra?

Dự định gọi 1 giá trị như 1 chức năng, nhưng giá trị đó không thật sự là 1 chức năng. Một số đoạn mã chờ bạn cung cấp 1 chức năng, nhưng điều đó không xảy ra.

Có lẽ là do bạn đánh sai tên chức năng chăng? Có lẽ object mà bạn định gọi method cho không có chức năng này? Ví dụ như những object của Javascript không có chức năng map, nhưng object của Javascript xâu (Array) thì có.

Có rất nhiều chức năng có sẵn khi cần dùng lại 1 chức năng. Bạn sẽ phải cung cấp 1 chức năng để những method này hoạt động 1 cách chính xác.

Ví dụ

Lỗi đánh máy trong tên chức năng

Trong trường hợp này, xảy ra rất thường xuyên, có 1 lỗi đánh máy trong tên method:

var x = document.getElementByID('foo');
// TypeError: document.getElementByID is not a function

Tên đúng là getElementById:

var x = document.getElementById('foo');

Chức năng bị gọi sai trên object

Đối với 1 số method nhất định, bạn phải cung cấp 1 chức năng (để gọi trở lại) và nó sẽ hoạt động trên những object nhất định đó thôi. Ví dụ khi Array.prototype.map() được sử dụng, thì sẽ chỉ chạy với object Array này mà thôi.

var obj = {a: 13, b: 37, c: 42};

obj.map(function(num) {
  return num * 2;
});

// TypeError: obj.map is not a function

Thay vào đó, sử dụng 1 xâu:

var numbers = [1, 4, 9];

numbers.map(function(num) { 
  return num * 2; 
}); 

// Array [2, 8, 18]

Liên kết:

Document Tags and Contributors

 Những người đóng góp cho trang này: Lisa9820727170617
 Cập nhật lần cuối bởi: Lisa9820727170617,