--- 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 ---
TypeError: "x" is not a function
{{jsxref("TypeError")}}.
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:
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');
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]