Die Übergabe von Parametern an eine mit setTimeout verzögert aufgerufene Funktion ist ein Fall, bei dem man *immer* eine Closure verwenden sollte. Dann braucht man sich nicht darüber Gedanken machen, wie man irgendwelche Variablen in Strings zusammenbastelt, die dann eval()-artig ausgeführt werden.
/* Funktions-Kontext */
var foo = "a", bar = "b"; // lokale Variablen
window.setTimeout(function () { ausgeben(foo, bar); }, 1000);
Nur als Ergänzung: das läuft dann aber nur in Browser >IE 4 und >NC 4
Wobei das mittlerweile vernachlässigbar sein dürfte, da diese Browser mit den wenigstens Skripten (und CSS) klar kommen.
Struppi.