MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

TypeError: "x" is not a function

This translation is incomplete. Please help translate this article from English.

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

 Contributors to this page: Lisa9820727170617
 Last updated by: Lisa9820727170617,