wennike: Existenz einer Funktion prüfen

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.

  1. if(window.foo) {
        bar();
    }

    wobei foo die gesuchte Funktion

    Gruss,
    nam

    1. 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

      --
      ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
      debian/rules
      1. 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

        1. 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

          --
          [NaN]
          1. 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