Fehler Meldung
TypeError: "x" is not a function
Error Typ
Was ist falsch gelaufen?
Es versuchte einen Wert wie eine Funktion aufzurufen, aber der Wert ist eigentlich keine Funktion. Manchmal erwartet der Code, dass sie eine Funktion erstellen. Dies hat aber nicht geklappt.
Vielleicht ist ein Tippfehler in der Funktion. Oder das Objekt, welches du aufrufst, besitzt so eine Funktion nicht. Beispiel, JavaScript Objekte haben keine map function, aber im JavaScript Array hat es eine map Funktion.
Es gibt viele eingebaute Funktionen, die eine (Callback-) Funktion benötigen. Sie müssen eine Funktion bereitstellen, damit diese Methoden ordnungsgemäß funktionieren:
- Wenn es funktioniert mit
ArrayoderTypedArray: - Wenn es funktioniert mit
MapundSetObjekten:
Beispiele
Ein Schreibfehler im Funktions Name
In diesem Fall passiert es viel zu oft, dass im Name ein Schreibfehler ist:
var x = document.getElementByID('foo');
// TypeError: document.getElementByID is not a function
Die korrekte Funktion ist getElementById:
var x = document.getElementById('foo');
Funtionen, die auf dem Falschen Objekt aufgerufen werden
Für bestimmte Methoden musst du eine (callback) Funktion deklarieren. Und es funktioniert nur für bestimmte Objekte. In diesem Beispiel, Array.prototype.map() wird verwendet, welche nur mit Array Objekten funktionieren wird.
var obj = {a: 13, b: 37, c: 42};
obj.map(function(num) {
return num * 2;
});
// TypeError: "x" is not a function
Verwenden sie stattdessen ein Array
var numbers = [1, 4, 9];
numbers.map(function(num) {
return num * 2;
});
// Array [2, 8, 18]