TypeError: "x" nie jest funkcją

To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.

Wiadomość

TypeError: "x" is not a function

Typ błędu

TypeError.

Co poszło źle?

Próbowano wywołać wartość jak funkcję, ale wartość nie jest funkcją. Kod oczekuje od Ciebie przekazania funkcji, co nie miało miejsca.

Może zrobiłeś literówkę w nazwie funkcji? Może objekt na którym wywołujesz tę metodę nie posiada tej funkcji? Na przykład, objekt JavaScript nie posiada funkcji map, natomiast objekt JavaScript Array posiada.

Istnieje mnóstwo wbudowanych funkcji wymagających (callback) funkcji. Będziesz musiał wprowadzić funkcję, by metody te działały poprawnie:

Przykłady

Literówka w nazwie funkcji

W tym wypadku, co zdarza się zbyt często, jest literówka w nazwie metody:

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

Poprawna naywa metody to getElementById:

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

Funkcje wywołane na nieodpowiednim objekcie

Dla pewnych metod, musisz podać (callback) funkcję, która będzie działała tylko dla specyficznych objektów. W tym przykładzie, Array.prototype.map() jest użyta, podczas gdy działa tylko z objektami Array

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

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

// TypeError: obj.map is not a function

Użyj w zamian array:

var numbers = [1, 4, 9];

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

// Array [2, 8, 18]

Zobacz również

Autorzy i etykiety dokumentu

 Autorzy tej strony: Vvitek
 Ostatnia aktualizacja: Vvitek,