hotti: Unterstrich als Funktionsname

neulich sah ich eine Funktion:

  
function _(el){  
    return document.getElementById(el);  
}  

was Tipparbeit verringert:

  
_('myID').innerHTML = 'irgendwas';  

Was geht hier genau vor?

  1. neulich sah ich eine Funktion:

    function _(el){
        return document.getElementById(el);
    }

    
    >   
    > was Tipparbeit verringert:  
    >   
    > ~~~javascript
      
    
    > _('myID').innerHTML = 'irgendwas';  
    > 
    
    

    Was geht hier genau vor?

    Na, genau das, was da steht. Eine Funktion namens '_' wird aufgerufen, welche wiederum eine Funktion aufruft und dessen ergebnist zurück gibt. Das Ergebnis ist entweder ein DOM-Element oder null.

    MfG
    bubble

    --
    If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
    1. hi,

      Na, genau das, was da steht. Eine Funktion namens '_' wird aufgerufen, welche wiederum eine Funktion aufruft und dessen ergebnist zurück gibt. Das Ergebnis ist entweder ein DOM-Element oder null.

      Oh mann, der Typ im youtubetutorial hat das so dargestellt, als wäre das was total Mystisches und ein cooler Hack... also besser nicht machen und Funktionsnamen verwenden, die ein bischen aussagekräftiger sind oder gleich das hinschreiben, was genau gemacht werden soll, auch wenns mal ein bischen länger dauert ;)

      Horst

      1. Oh mann, der Typ im youtubetutorial hat das so dargestellt, als wäre das was total Mystisches und ein cooler Hack... also besser nicht machen und Funktionsnamen verwenden, die ein bischen aussagekräftiger sind oder gleich das hinschreiben, was genau gemacht werden soll, auch wenns mal ein bischen länger dauert ;)

        Wieso?
        Diese Funktion vereinfacht das a und o des Javascripts. Deshalb hat jedes Framework diese Art von Funktion. Der Funktionsname ist dabei immer sehr kurz und somit nichtssagend. In Jquery ist es z.B. $. In anderen Frameworks ist es entweder auch $ oder irgendwas ähnlich kurzes.

        Gruß
        T()

        1. hi,

          Wieso?
          Diese Funktion vereinfacht das a und o des Javascripts. Deshalb hat jedes Framework diese Art von Funktion.

          Stimmt, im MagentoFW ist _ der Übersetzer und für mehrsprachige Ausgaben zuständig. Naja, ich hätte diese Methode wenigstens tr() genannt ;)

          Horst

  2. Hallo,

    _ ist ein gültiger JavaScript-Identifier. Längerer Artikel zum Thema:
    Valid JavaScript variable names

    _ wird allerdings von Underscore.js bzw. Lo-Dash verwendet.

    $ und $$ sind eher üblich für solche DOM-Querying-Funktionen. Siehe jQuery, Mootools und Prototype.

    Mathias

    1. Hallo Mathias,

      _ ist ein gültiger JavaScript-Identifier. Längerer Artikel zum Thema:
      Valid JavaScript variable names

      Wow, vielen Dank!!!

      <quote>An Identifier is an IdentifierName that is not a ReservedWord.</quote>

      Wenn ich das richtig verstehe (also den Artikel), entspricht das dem Type-Globbing im Perl.

        
      *foo = sub {}; # typeglob  
      
      

      Ich schaffe mir einen Identifier mit dem Namen 'foo' ('foo' ist kein reserviertes Wort) und lade diesen Identifier in die Symboltabelle. Ein

        
        $self->foo;  
      
      

      versteht der Interpreter als Aufruf einer Funktion.

      Horst