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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage