JavaScript Fehler: "ist keine Funktion"

8

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?

    
SaltyNuts 22.03.2012, 15:10
quelle

2 Antworten

11

Ihre Funktion LMSInitialize wird in Scorm_API_12 function deklariert. Es kann also nur im Funktionsumfang von Scorm_API_12 function gesehen werden.

Wenn Sie diese Funktion wie API.LMSInitialize("") verwenden möchten, deklarieren Sie Scorm_API_12 wie folgt:

%Vor%     
Just_Mad 22.03.2012, 15:22
quelle
11

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:

  • Fehlende Skriptbibliothek
  • Tippfehler
  • Die Funktion befindet sich in einem Bereich, auf den Sie derzeit keinen Zugriff haben, z. B .:

%Vor%
  • Ihr Objekt / Ihre Funktion hat nicht die Funktion, die Sie anrufen:

%Vor%
    
Liam 13.10.2016 07:43
quelle