Es würde genauso funktionieren, aber es könnte leicht andere Skripte auf Ihrer Seite brechen, wenn Sie eine Variable mit einer Kennung im Google-Code deklariert haben.
Durch das Umschließen der Deklaration in einer Closure werden die Variablen auf die anonyme Funktion beschränkt und nicht in den globalen Bereich ausgeleitet.
Zum Beispiel betrachten Sie dieses Beispiel mit dem neuen Anwendungsbereich:
var ga = "something important for my script"; // Not overwritten in this scope
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
Und diesem Beispiel ohne es:
var ga = "something important for my script"; // Overwritten!
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
Dies ist zu vermeiden, den globalen Namensraum mit den 'ga' und' s' Variablen zu verschmutzen. – AKX