Existenz einer Funktion prüfen
wennike
- javascript
0 nam
Hallo Freunde!
Kann mir jemand verraten, ob man die Existenz einer JavaScript-Funktion prüfen kann?
z.B. so...
if (exists_function('meinefunktion') {meinefunktion(parameter);}
Das Problem besteht darin, dass einige FUnktionen aus PHP dynamisch erstellt werden und abhängig von den dargestellten Daten mal vorhanden sind und mal nicht.
if(window.foo) {
bar();
}
wobei foo die gesuchte Funktion
Gruss,
nam
Hallo nam.
if(window.foo) {
bar();
}wobei foo die gesuchte Funktion
Warum rufst du dann nicht auch „foo“ auf? Zusätzlich sollte man den Rückgabewert des typeof-Operators prüfen. Nur durch die Existenz eines Objektes ist noch nicht sichergestellt, dass es sich hierbei auch um eine Funktion handelt.
Einen schönen Dienstag noch.
Gruß, Mathias
Warum rufst du dann nicht auch „foo“ auf?
Ich hab gerade nachgeschaut, ob es eine Funktion "bar" gibt.
Aber wir müssen das nicht zu kompliziert machen. Wenn ich ein true bekomme, _muss_ es in meinem Fall eine Funktion sein, deren Operatoren auch bekannt sind.
Danke an Alle
Aber wir müssen das nicht zu kompliziert machen.
Aber man sollte es *richtig* machen, wozu gibt es den typeof-Operator:
function function_exists(fName, pObj) {
if(!pObj) pObj = window;
return (typeof pObj[fName] == 'function') ? true : false;
}
Aufruf:
alert(function_exists('foo')); // true
var myObj = new Object();
alert(function_exists('foo', myObj)); // false
Schließlich muss nicht jede Funktion zwangsläufig eine Methode des window-Objektes sein.
Siechfred
Hallo Siechfried!
Sehr schön! Habe gestern nach dem Posting im Bett gelegen und gedacht: «Mann, was hab ich für'n Käse geschrieben!»
Sehr schöne Lösung – das hätte ich nicht so hingekriegt; v.a. auch die Wiederverwendbarkeit bei Objekten.
Gruss,
nam