Che cosa significa questo snippet di JavaScript?

Non ho mai incontrato questo tipo di grammatica prima. Cosa significa? A quale tecnica è correlata?

(function(fun) { })(myFunkyAlert); 

Questa è una funzione anonima che verrà eseguita non appena viene dichiarata. Il suo parametro è myFunkyAlert e all’interno della funzione verrà indicato come variabile fun .

Il motivo per cui di solito scriviamo una funzione del genere è per evitare conflitti, dovuti allo scoping.

Esempio:

 var myFunkyAlert = "The funky alert"; (function(fun) { alert(fun); })(myFunkyAlert); 

Ciò comporterà un avviso con il messaggio “L’avviso funky”.

Stai definendo una funzione anonima e poi chiamandola con myFunkyAlert come argomento.

Fai riferimento a questa domanda: qual è la differenza tra un’espressione di funzione e una dichiarazione in JavaScript? e questo link: http://kangax.github.com/nfe/