Questo è un modo conciso per formare un'espressione di funzione immediatamente eseguita.
Tradizionalmente, le persone hanno utilizzato queste due forme
(function(){ }()); // Recommended by Crockford
(function(){ })(); // What most people use
Se si tenta di utilizzare solo
function(){ }(); // Syntax error
sarà un errore di sintassi, perché viene interpretato come una dichiarazione di funzione piuttosto che un espressione. Questo è il motivo per cui è necessario avvolgere la funzione tra parentesi.
Ma se si mette un operatore unario prima della dichiarazione di funzione, non è necessario aggiungere una parentesi cosing e si taglia via un carattere del codice, che è un (molto) piccolo vantaggio di prestazioni. Esistono diversi operatori unari che possono essere utilizzati allo stesso scopo
!function(){ }();
~function(){ }();
-function(){ }();
+function(){ }();
fonte
2012-08-11 15:37:20
Sì, sembra che abbia la stessa domanda della domanda "punto esclamativo". Mi scuso, non l'ho notato nella mia ricerca. – CgodLEY
@CgodLEY: la ricerca di StackOverflow non funziona molto bene con la punteggiatura e altri simboli. Aiuta un po 'a spiegarlo. –
Lo si utilizza per provocare l'invocazione immediata della funzione rendendola simile a un'espressione e non a un'istruzione. – dakt