J'ai ce compteur que j'ai fait mais je veux qu'il fonctionne pour toujours, c'est vraiment simple, qu'est-ce que je fais mal ici?
function timer() {
console.log("timer!")
}
window.setInterval(timer(), 1000)
J'ai ce compteur que j'ai fait mais je veux qu'il fonctionne pour toujours, c'est vraiment simple, qu'est-ce que je fais mal ici?
function timer() {
console.log("timer!")
}
window.setInterval(timer(), 1000)
Vous avez utilisé un appel de fonction au lieu d'une référence de fonction comme premier paramètre de setInterval. Fais-le comme ça:
function timer() {
console.log("timer!");
}
window.setInterval(timer, 1000);
Ou plus court (mais quand la fonction devient plus grande aussi moins lisible):
window.setInterval( function() {
console.log("timer!");
}, 1000)
setInterval
et setTimeout
doit être utilisé avec des rappels, comme:
setInterval(timer, 1000);
ou sans nom des fonctions:
setInterval( function() { console.log("timer!"); }, 1000 );
Pourquoi ton code ne fonctionne pas lorsque vous passer une fonction comme argument d'une autre fonction avec des crochets par exemple, doSomething ( someFunc() )
vous êtes de passage le résultat de la fonction.
Lorsque la fonction est passée comme objet, par ex. doSomething ( someFunc )
vous êtes de passage à un rappel. De cette façon, someFunc
est passé comme référence et qu'il est exécuté quelque part dans la fonction appelante. C'est la même chose que les pointeurs de fonctions dans d'autres langues.
Une erreur commune est d'utiliser ces deux fonctions comme indiqué à w3schools. Cela fait un appel implicite à l' eval
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.