Diferença entre (function () {}) (); e function () {} ();

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

Isso é algo que eu ainda não descobri, mas eu tenho usado function () {} () só porque o realce da syntax do VIM se estraga se eu adicionar os parênteses, embora eu tenha visto (function () {}) () em torno de muitas vezes, talvez seja uma coisa do IE?

editar:

var singleton = function() { // code }(); var singleton = (function() { // code })(); 

Peter Michaux discute a diferença em um par importante de Parens .

Basicamente, os parênteses são uma convenção para denotar que uma expressão de function imediatamente invocada está seguindo, não uma function simples. Especialmente se o corpo da function for longo, isso reduz surpresas,

O conjunto extra de parênteses deixa mais claro que você está construindo uma function e, em seguida, chamando-a. É uma coisa de estilo de codificação, não uma funcionalidade.

 function(){}(); 

não funciona na maioria dos navegadores. Você deve usar parênteses em torno da function para poder executá-la

 (function(){})(); 

então o navegador saberá que o último parêntese deve ser aplicado a toda a expressão

 function(){} 

UPD : Se você não usar parênteses, o líder poderia interpretar mal você. Se você acabou de chamar a function e descartar o resultado

 function() { alert(1); }(); 

então ff e ou seja, vai lançar erro