--- title: 'TypeError: "x" nie jest funkcją' slug: Web/JavaScript/Reference/Errors/Not_a_function tags: - Errors - JavaScript - TypeError translation_of: Web/JavaScript/Reference/Errors/Not_a_function ---
{{jsSidebar("Errors")}}

Wiadomość

TypeError: "x" is not a function

Typ błędu

{{jsxref("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, {{jsxref("Array.prototype.map()")}} jest użyta, podczas gdy działa tylko z objektami {{jsxref("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ż