molily: Threaddrift: JQuery, Programmierstil

Beitrag lesen

So ein Fall ist einer der wenigen, in dem ich keinen Block bei for setzen würde. Das ist aber nur eine Frage der Übersichtlichkeit und Kürze und hat für mich weniger mit for, als mit Function-Expression zu tun. Aus dem Grund habe ich den Heinz Code auch insofern angepasst, dass die Function-Expressions nicht eingerückt werden, sondern nur ihr Inhalt. Bei jQuery schreibt man ständig $().func(function () {}), im Falle von toggle könnte ich jetzt ausführlich schreiben:

for () {
   (function () {
      $().toggle(
         function () {
            ...
         },
         function () {
            ...
         }
      );
   }(i);
}

Damit wäre für Einsteiger noch am ehesten klar, was da notiert wird. Aber wenn man das ausführliche Schema durchhält, wird funktionaler Code unglaublich raumgreifend. Deshalb habe ich das »function () {« jeweils hochgezogen in die Zeile davor. Wirkt dann viel kompakter und ist für jQuery-Kenner immer noch zu verstehen, weil dort Function-Expressions und Closures zum Handwerkszeug gehören. Den Block nach for sehe ich dann als überflüssig und störend an. Und wenn man mit Closures und Schleifen arbeitet, sollte man das Schema for () (function {})(); beherrschen und auch in fremdem Code in der Kurzschreibweise sofort erkennen.

Mathias