Zwei Möglichkeiten zum sofortigen Aufrufen einer anonymen Funktion (function (d) {} ()); und (Funktion (x) {}) (); [Duplikat]
Mögliche Duplikate:
Sind "(function () {}) ()" und "(function () {} ())" in JavaScript funktional gleich?
Bei meiner Frage mit diesen Sonderzeichen konnte ich keine gute Antwort finden. (Weiß jemand, wie man mit ihnen sucht?)
Ich habe zwei Muster gesehen, um sofort anonyme Funktionen aufzurufenhttp://jsfiddle.net/ukqS8/1/
<code>(function(d) { document.write(d*2); })(3); </code>
und
<code>(function(x) { document.write(x*2); }(3)); </code>
Der Unterschied besteht darin, wo (3) platziert ist: innerhalb oder außerhalb der schließenden Klammer.
Ich habe hier eine gute Erklärung für den zweiten Fall gefunden:
Javascript-Funktion vs. (function () {...} ());
was ich als verstanden habefunction(x) {...}
erstellt ein Funktionsobjekt, (3) wird zu seinem Argument, und das einschließende () teilt dem Interpreter mit, dass es sich bei dem Inhalt um eine Anweisung handelt.
Im ersten Fall scheint es zu machen(function(d) {...})
eine Aussage, die irgendwie auch eine Funktion ist, und dann (3) auf diese Aussage / Funktion anwenden.
Sie scheinen also beide auf die gleiche Weise auszuführen. Gibt es hier wirklich einen Unterschied? Geltungsbereich (ich bezweifle es)? Ist eine Option vorzuziehen?