Ashura: Parameterübergabe mit SetTimeout()

Beitrag lesen

Hallo Marco.

ich habe ein kleines Problem, in der Dokumentation zur setTimeout-Methode, wird die Möglichkeit einer Parameterübergabe mittel Zeichenkettenverknüpfung erwähnt. Ich habe allerdings keine Ahnung wie ich einen Parameter oder eine Variable so an die aufgerufene Funktion übergeben kann, dass sie dort benutzbar ist.

Wie wäre es zum Beispiel folgendermaßen?

var foo = 'Ein kleiner Satz ';  
var bar = 'mit einer Ergänzung.';  
  
setTimeout('var a = "' + foo + '"; var b = "' + bar + '"; ausgeben(a, b)', 1000);  
  
function ausgeben(a, b) {  
  alert(a + b);  
}

Wichtig ist, dass die Zeichenkette, die als erster Parameter an setTimeout übergeben wird, interpretiert wiederum gültiges JavaScript ergibt.

setTimeout('var a = ' + foo + '; var b = ' + bar + '; ausgeben(a, b)', 1000);

Dies hier wäre also falsch, da hier die Anführungszeichen um die Werte der Variablen a und b fehlen, das Wort „Ein“ würde also als undeklarierte Variable aufgefasst.

Kürzer und sicher auch flexibler ginge es natürlich auch so:

setTimeout('ausgeben("' + foo + '", "' + bar + '")', 1000);

Einen schönen Freitag noch.

Gruß, Ashura

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]