Es sieht aus wie "$ smth ist keine Funktion" ist ein sehr häufiges Problem mit JavaScript, aber nach dem Durchsehen von ein paar Threads kann ich immer noch nicht verstehen, was es in meinem Fall verursacht.
Ich habe ein benutzerdefiniertes Objekt, definiert als:
%Vor%In einem anderen Skript versuche ich diese API folgendermaßen zu verwenden:
%Vor%Das getAPI () Zeug, sieht so aus:
%Vor% Nun wird die API wahrscheinlich gefunden , da ich die Meldung "Unable to find ..." nicht erhalte, versucht der Code, ihn zu initialisieren. Aber Firebug sagt mir API.LMSInitialize is not a function
, und wenn ich versuche, es mit alert(Object.getOwnPropertyNames(API));
zu debuggen, gibt es mir eine leere Warnung.
Was vermisse ich?
Für weitere generische Ratschläge zum Debuggen dieser Art von Problemen haben MDN einen guten Artikel TypeError:" x "ist keine Funktion :
Es wurde versucht, einen Wert wie eine Funktion aufzurufen, der Wert jedoch nicht eigentlich eine Funktion. Einige Codes erwarten, dass Sie eine Funktion bereitstellen, aber das ist nicht passiert.
Vielleicht gibt es einen Tippfehler im Funktionsnamen? Vielleicht bist du das Objekt Aufruf der Methode hat diese Funktion nicht? Beispielsweise, JavaScript-Objekte haben keine Kartenfunktion, sondern ein JavaScript-Array-Objekt mach das.
Grundsätzlich existiert das Objekt (alle Funktionen in js sind auch Objekte) nicht dort wo du denkst es zu tun. Dies könnte für zahlreiche Gründe einschließlich (keine umfangreiche Liste) sein:
Tags und Links javascript javascript-objects