Dwa sposoby natychmiastowego wywołania funkcji anonimowej (funkcja (d) {} ​​()); i (funkcja (x) {}) (); [duplikować]

Możliwy duplikat:
Czy są „(funkcja () {}) ()” i „(funkcja () {} ())” funkcjonalnie równa w JavaScript?

Moje pytanie o te znaki specjalne, nie mogłem znaleźć dobrej odpowiedzi. (Czy ktoś wie, jak z nimi szukać?)

Widziałem dwa wzorce do natychmiastowego wywoływania anonimowych funkcjihttp://jsfiddle.net/ukqS8/1/

<code>(function(d) {
    document.write(d*2);
})(3);
</code>

i

<code>(function(x) {
    document.write(x*2);
}(3));
</code>

Różnica polega na umieszczeniu (3): wewnątrz lub na zewnątrz nawiasu zamykającego.

Znalazłem tutaj dobre wyjaśnienie drugiego przypadku:

funkcja javascript vs. (function () {...} ());

co rozumiałem jakofunction(x) {...} tworzy obiekt funkcji, (3) staje się jego argumentem, a enclosing () mówi interpreterowi, że to, co jest w środku, jest instrukcją.

W pierwszym przypadku wydaje się(function(d) {...}) instrukcja, która w jakiś sposób jest również funkcją, a następnie stosuje się (3) do tej instrukcji / funkcji.

Tak więc oba wydają się wykonywać w ten sam sposób. Czy jest tu naprawdę różnica? Zakres (wątpię w to)? Czy preferowana jest którakolwiek z tych opcji?

questionAnswers(2)

yourAnswerToTheQuestion