TypeError: "x" nie jest funkcj膮

Wiadomo艣膰

TypeError: "x" is not a function

Typ b艂臋du

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偶