2010-06-03 20 views
5

Ich möchte Funktion mit Argwohn regelmäßig aufrufen.eine JavaScript-Funktion in regelmäßigen Abständen aufrufen

Ich versuchte setTimeout("fnName()",timeinseconds); und es funktioniert.

Aber wenn ich ein Argument hinzufügen, wird es nicht funktionieren. zB: setTimeout("fnName('arg')",timeinseconds);

+0

Ich glaube nicht, dass Sie brauchen – ant

+0

Ohne Argumente sollte es nur 'setTimeout (FnName, timeinseconds);' Sie können 'setTimeout (fnName(), timeinseconds); wie das wird die Funktion jetzt. –

+0

@Matthew Flaschen - Es ist in Anführungszeichen in der Frage :) –

Antwort

12

Sie können eine anonyme Funktion hinzufügen:

setTimeout(function() { fnName("Arg"); }, 1000); 
+0

erwähnenswert - das heißt "currying" :) –

+0

@Yonatan nett, noch nie davon gehört :) Meinst du den Aufruf in eine anonyme Funktion? –

+0

setTimeout ruft Funktion nicht wiederholt auf, aber setInterval ruft wiederholt auf – shin

2

Verwenden Sie eine anonyme Funktion, wie folgt aus:

setTimeout(function() { fnName('arg'); }, time); 

Im Allgemeinen nie eine Zeichenfolge an setTimeout() oder setInterval() passieren, wenn Sie können es vermeiden, es gibt andere Nebenwirkungen neben schlechter Übung ... z Der Bereich, in dem Sie sich befinden, wenn es ausgeführt wird.

nur als Randnotiz, wenn Sie nicht ein Argument benötigen, es ist nur:

setTimeout(fnName, time); 
0

SetTimeout nimmt einen Ausdruck oder ein Funktionsnamen oder eine anonyme Funktion aber NO () Operator.

() startet die Ausführung der Funktion sofort und führt dazu, dass setTimeout einen ungültigen Parameter akzeptiert.

Verwandte Themen