Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

TypeError: "x" is not a function

Эта статья нуждается в редакционном обзоре. Как вы можете помочь.

Сообщение

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 ]

Смотри так же

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

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