javascript - problème de fonction anonyme du minuteur
高洛峰
高洛峰 2017-05-19 10:36:56
0
3
460
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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(3)
阿神

Le premier paramètre de setInterval accepte une chaîne et analysera la chaîne dans une instruction de fonction pour exécution.

大家讲道理

Tout d’abord, jetons un coup d’œil à l’explication du W3C sur setInterval

, puis regardons-la

  1. setInterval("ssss()", 1000);

  2. 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

某草草

Si vous n'ajoutez pas de guillemets doubles, vous devez supprimer les parenthèses et écrire simplement le nom de la fonction

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal