Maison > Questions et réponses > le corps du texte
var a = 0;
function fn(){
ssss.call(null,a)
// 为什么 定时器里面的匿名函数加上字符串跟直接执行不同???
setInterval("ssss()", 1000);
setInterval(ssss(), 1000);
}
function ssss(){
console.log(++a)
}
fn();
Veuillez demander au maître de vous expliquer le principe derrière cela
阿神2017-05-19 10:38:56
Le premier paramètre de setInterval accepte une chaîne et analysera la chaîne dans une instruction de fonction pour exécution.
大家讲道理2017-05-19 10:38:56
Tout d’abord, jetons un coup d’œil à l’explication du W3C sur setInterval
, puis regardons-la
setInterval("ssss()", 1000);
setInterval(ssss(), 1000);
1. Ensuite, une erreur sera signalée lors de l'exécution de
2.
function ssss(){
console.log(++a)
}
Il n'y a pas de valeur de retour, mais notez qu'il y a une phrase ssss.call(null,a) dans la fonction fn, il y a donc une valeur de retour dans la fonction fn. De plus, la valeur de retour n'est qu'une fonction, elle répond donc aux exigences de la fonction setInterval et continuera à être exécutée某草草2017-05-19 10:38:56
Si vous n'ajoutez pas de guillemets doubles, vous devez supprimer les parenthèses et écrire simplement le nom de la fonction