recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - problème de fonction anonyme du minuteur

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

高洛峰高洛峰2753 Il y a quelques jours436

répondre à tous(3)je répondrai

  • 阿神

    阿神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.

    répondre
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:38:56

    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

    répondre
    0
  • 某草草

    某草草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

    répondre
    0
  • Annulerrépondre