Chamada de função anônima JavaScript [duplicada]

Esta pergunta já tem uma resposta aqui:

O que o ponto de exclamação faz antes da função? 10 respostas

Eu estava lendo fontes JS do Twitter - no meu caminho para melhorar minha base de conhecimento de JS, quando me deparei com a maneira estranha de chamar uma função anônima:

!function( $ ) {
    ...
}( window.jQuery );

... e isso funciona! :)

É óbvio para todos, que isso:

function ( $ ) { ... } ( window.jQuery )

não funciona (erro de sintaxe), enquanto este está correto:

(function ( $ ) { .... })( window.jQuery )

Alguém pode explicar essa mágica (por que o caso com!function trabalho)

questionAnswers(8)

yourAnswerToTheQuestion