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

Сообщение

TypeError: "x" is not a function

Тип ошибки

TypeError.

Что пошло не так?

Была сделана попытка вызвать значение как функцию, но значение на самом деле не является функцией. Некоторый код ожидает от вас предоставить функцию, но этого не происходит.

Может быть есть ошибка в имени функции? Может быть объект, который вы вызываете методом, не содержится в функции? Для примера, JavaScript объекты не имеют map функции, а JavaScript Array - имеют.

Есть множество функции нуждающихся в функциях обратного вызова. Вы должны будете обеспечить функцию для того, чтобы эти методы работы правильно :

Примеры

Ошибки в имени функции

В данном случае, случающимся очень часто, есть опечатка в имени метода:

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

Корректное имя функции будет getElementById:

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

Функция вызывающая неверный объект

Для некоторых методов, вы должны предоставить функцию обратного вызова и она будет работать только на корректных объектах.  В этом примере используется Array.prototype.map(), в котором Array будет работать только с объектами.

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

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

// TypeError: obj.map is not a function

Использование массива вместо:

var numbers = [1, 4, 9];

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

// Array [ 2, 8, 18 ]

Смотри так же

Метки документа и участники

 Внесли вклад в эту страницу: MonX94, eedmast, s1lver
 Обновлялась последний раз: MonX94,