Soll ich var im for in construct verwenden?
Ich benutze eine for-in-Schleife in einem Stück JavaScript-Logik. Soll ich das Schlüsselwort var verwenden oder nicht?
Wenn ich eine for-in-Schleife gemäß dem Beispiel von W3School ohne var ausführe, wird sie als Nebeneffekt als eine Eigenschaft im globalen Bereich (Fenster) definiert:
(function () {
var object = {
a: 1,
b: 2
}
for (varName in object) {
alert(varName + " is" + object[varName])
}
})();
alert(window.varName) //Returns "b" !
//This returns undefined when the for-in is rewritten as for (var varName in object).
edit: hier ist eine Fiedel des obigen Codes für Ihr Vergnügen:http://jsfiddle.net/94uEh/
Welches ist die richtige, bevorzugte Form? - Beachten Sie, dass ich IE 8 (EcmaScript <5) unterstützen möchte