Andi: Existiert eine Funktion?

Hi Forum!

Gibt es eine Funktion, mit der ich überprüfen kann, ob eine andere Funktion existiert? Ich dachte ich hätte da mal irgendwo eine gesehen... find aber keine! :-(

mfg

Andi

  1. Hallo,

    Gibt es eine Funktion, mit der ich überprüfen kann, ob eine andere Funktion existiert? Ich dachte ich hätte da mal irgendwo eine gesehen... find aber keine! :-(

    einfach danach fragen

    if (document.eigene_funktion)
      {
        alert('eigene_funktion existiert');
      }
      else
      {
        alert('eigene_funktion existiert nicht');
      }

    Denke mal, dass das so geht

    LG
    Chris

    1. Hi!

      if(document.eigene_funktion)

      Hier sollte man beachten, dass eine Funktion, die man einfach so deklariert
      function eigene_funktion() {...}
      normalerweise Teil des window-Objekts sind. Somit müsste die Abfrage dann lauten:

      if(window.eigene_funktion)

      in den meisten Fällen funktioniert es auch einfach so:

      if(eigene_funktion)

  2. Hallo Andi.

    Gibt es eine Funktion, mit der ich überprüfen kann, ob eine andere Funktion existiert? Ich dachte ich hätte da mal irgendwo eine gesehen... find aber keine! :-(

    Wenn:

    function foo () {  
      alert('foo');  
    }
    

    Dann:

    if (window.foo) {  
      alert('foo() exists.');  
    }
    

    Das rührt daher, dass neue Funktionen ohne weiteres Zutun der obersten Objektinstanz, dem window-Objekt, zugeordnet werden. Sie stellen dabei eine Funktions-Eigenschaft dar, weshalb hierüber auch ganz einfach ihre Existenz überprüft werden kann.

    Einen schönen Sonntag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    <mathbr:del.icio.us />
    1. Hallo.

      if (window.foo) {

      alert('foo() exists.');
      }

        
      Kleine Erweiterung:  
        
      ~~~javascript
      if (window.foo && typeof(window.foo) == 'function') {  
        alert('foo() exists and is a ' + typeof(window.foo));  
      }
      

      Eine global deklarierte Variable foo wird ja schließlich ebenfalls dem window-Objekt untergeordnet.

      Einen schönen Sonntag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      <mathbr:del.icio.us />
      1. Hallo.

        if (window.foo) {

        alert('foo() exists.');
        }

        
        >   
        > Kleine Erweiterung:  
        >   
        > ~~~javascript
        
        if (window.foo && typeof(window.foo) == 'function') {  
        
        >   alert('foo() exists and is a ' + typeof(window.foo));  
        > }
        
        

        Und nun noch etwas kürzer:

        if (typeof(foo) == 'function') {  
          alert('foo() exists and is a ' + typeof(foo));  
        }
        

        Wenn keine Eigenschaft foo (weder Variable noch Funktion) deklariert wurde, ergibt typeof(window.foo) sowieso undefined, ist foo keine Funktion, trifft die Bedingung auch nicht zu. (Wurde die Funktion einem bestimmten Objekt zugeordnet, muss dieses natürlich voran gestellt werden.)

        Einen schönen Sonntag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        <mathbr:del.icio.us />
        1. if (typeof(foo) == 'function') {

          alert('foo() exists and is a ' + typeof(foo));
          }

          
          >   
          
          ok, das nenn ich mal ausführlich ;-) danke!
          
        2. hi,

          if (window.foo && typeof(window.foo) == 'function')

          Und nun noch etwas kürzer:

          if (typeof(foo) == 'function')

          Und da typeof ein Operator ist, geht's auch noch etwas kürzer - nämlich ohne die Klammern:
          if (typeof foo == 'function')

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }