806 Stimmen

Wie prüft man, ob eine Funktion in JavaScript existiert?

Mein Code lautet

function getID( swfID ){
     if(navigator.appName.indexOf("Microsoft") != -1){
          me = window[swfID];
     }else{
          me = document[swfID];
     }
}

function js_to_as( str ){
     me.onChange(str);
}

Aber manchmal ist mein onChange wird nicht geladen. Firebug-Fehler mit

me.onChange ist keine Funktion

Ich möchte die Leistung schonend abbauen, da dies nicht die wichtigste Funktion in meinem Programm ist. typeof führt zu demselben Fehler.

Irgendwelche Vorschläge, wie man sicherstellen kann, dass sie existiert und dann nur onChange ?

(Keine der folgenden Methoden außer try catch one funktioniert)

1voto

Zabid Ahmed Punkte 21
// just pass your tested function name instead of myFunctionName
if ( $.isFunction($.fn.myFunctionName) ) {
    console.log( 'write your code here.' );
}

0voto

necrifede Punkte 671

Damit wird überprüft, ob die Funktion existiert, und wenn ja, wird sie ausgeführt.

me.onChange && me.onChange(str);

Somit ist der Fehler TypeError: me.onChange is not a function ist zu verhindern.

-1voto

cskwg Punkte 601
function isFunction( o ) { return null !== o && "function" === typeof o && !!o.apply; }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X