2011-08-22 10 views

risposta

121

Il punto e virgola è presente nel caso in cui si includa questo script subito dopo uno script "cattivo" che non chiude correttamente l'ultima riga con un punto e virgola. In questo caso è possibile che i due script vengano combinati e generano un codice non valido. Ad esempio se si uniscono più script in un'unica risposta.

Il() alla fine sta eseguendo la funzione. Questo sta creando una chiusura. Le variabili e i metodi privati ​​possono essere dichiarati nell'ambito di questa funzione a cui non è possibile accedere dall'esterno dello script.

+2

Questo non ha nulla a che fare con uno script "cattivo" - ha a che fare con la scrittura in uno stile libero da punto e virgola. –

+84

IMHO che è uno script "cattivo". –

+0

@pst: non l'ho capito. cura di elaborare? – naveen

9

Questo costrutto:

(function(){ /* something in here */ })() 

viene utilizzato per creare un nuovo ambito in Javascript.

More info on function scope here.

Per quanto riguarda il punto e virgola, non ho mai visto prima. Penso che sia una sicurezza per quando si concatenano diversi script, poiché i punti e virgola sono facoltativi in ​​alcuni casi alla fine del file.

+0

Esempio: https://github.com/js-cookie/js-cookie/blob/latest/src/js.cookie.js –