Duas formas de chamada imediata para função anônima (função (d) {} ​​()); e (função (x) {}) (); [duplicado]

Duplicata Possível:
São “(function () {}) ()” e “(function () {} ())” funcionalmente igual em JavaScript?

Minha pergunta com esses caracteres especiais, não consegui encontrar uma boa resposta. (Alguém sabe como procurar com eles?)

Eu vi dois padrões para chamar imediatamente funções anônimashttp://jsfiddle.net/ukqS8/1/

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

e

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

A diferença é onde (3) é colocado: dentro ou fora do parêntese de fechamento.

Eu encontrei uma boa explicação para o segundo caso aqui:

função javascript vs. (function () {...} ());

que entendi comofunction(x) {...} cria um objeto de função, (3) torna-se seu argumento e o delimitador () informa ao interpretador que o que está dentro é uma instrução.

No primeiro caso, parece fazer(function(d) {...}) uma declaração que de alguma forma é também uma função, e então aplica (3) a esta declaração / função.

Então, ambos parecem executar da mesma maneira. Existe realmente uma diferença aqui? Escopo (duvido)? Qualquer das opções é preferível?

questionAnswers(1)

yourAnswerToTheQuestion