Scriptease.js: Über den Umgang mit Funktionen

    <   Beitrag   >    

    <   Thread   >    

Re: Der Trick mit (...)

Avatar von uldb

uldb

688 Beiträge

   E-Mail   
11.04.2012 21:22 Permalink
Hanspeter Spalinger schrieb am 10. April 2012 11:26

> > (function () {
> >   // Do something ...
> > })();

> Kann mir mal jemand sagen was das für ein Konstrukt ist? Ich sehe das
> immer mal wieder.
> Was passiert wenn ich diese Runden Klammern verwende?

Steht im Artikel. Ohne die Klammern frisst es der Parser nicht, weil
er bei function am Zeilenanfang eine Funktionsanweisung erwartet. Du
willst aber einen Funktionsausdruck, weil du den Rückgabewert, der ja
die definierte Funktion ist, direkt aufrufen willst. Also machst du
dem Parser klar, dass jetzt ein Ausdruck kommt, indem du den Ausdruck
in runde Klammern packst.

> Sind das normale klammern so wie man sie auch im Ausdruck ((1+2)*3)
> verwendet?

Ja. Der "Rückgabewert" von (1) ist 1. Der Rückgabewert von
(function(){}) ist die (hier leere) Funktion. Diesen Rückgabewert
kannst du aufrufen wie jede andere Funktion, indem du die Parameter
(hier keine) in runden Klammern dranhängst (function(){})();

Thread-Anzeige einblenden

Anzeige