setInterval frage

Diskutiere setInterval frage im JavaScript Forum im Bereich Programmierung; Kann mir jemand sagen wieso mein Interval nur einmal durchgeführt wird ? var element = document.getElementById("demo"); var word = "Hello"...
H

Hashimura

New member
Beiträge
2
Punkte Reaktionen
0
Kann mir jemand sagen wieso mein Interval nur einmal durchgeführt wird ?

Javascript:
var element = document.getElementById("demo");
var word = "Hello";
setInterval(test(element, word), 1000);

function test(element, word){
    element.innerHTML += word;
}
 
S

Sempervivum

Well-known member
Beiträge
353
Punkte Reaktionen
52
Was hier passiert ist folgendes: Wenn Du das setInterval aufrufst, wird die Funktion test sofort ausgeführt und deren Rückgabewert statt einer Funktion gespeichert. Da der Rückgabewert undefiniert ist, Du hast ja kein return-Statement darin, kann setInterval im weiteren Verlauf die Funktion nicht aufrufen.
Ändere den Code so:
Code:
var element = document.getElementById("demo");
var word = "Hello";
setInterval(function() {
    test(element, word)
}, 1000);

function test(element, word){
    element.innerHTML += word;
}
dann wird eine anonyme Funktion an setInterval übergeben, die dann im weitern Verlauf aufgerufen werden kann.
Es geht noch einfacher, wenn Du die Funktion so änderst:
Code:
setInterval(test, 1000);

function test(){
    const element = document.getElementById("demo");
    const word = "Hello";
    element.innerHTML += word;
}
dann brauchst Du nur die Referenz zu übergeben.
 
Thema:

setInterval frage

Oben Unten