2016-11-13 3 views
0

ich kann nicht herausfinden, was ich falsch macheWarum funktioniert diese setInveral-Funktion nicht?

function countNum(){ 
    let num=0; 
    function inner(){ 
      num++ 
      console.log(num); 
       } 
      } 

setInterval(countNum,1000) 
+0

Add '()' am Ende des 'countNum' Aufruf - jetzt sind Sie in regelmäßigen Abständen die OUTER Ausführung Teil, nicht der innere Teil, der das Drucken macht. – vlaz

+0

Welche Ergebnisse erwarten Sie? –

+0

Ich kann nicht herausfinden, was Sie versuchen zu tun. Die innere Funktion wird niemals in Ihrem Code aufgerufen, so dass keine Ausgabe erfolgt. Sie rufen die äußere Funktion jede Sekunde auf. – WakiMiko

Antwort

1

Sie Funktion definieren, aber nicht

function countNum(){ 
    let num=0; 
    function inner(){ 
      num++ 
      console.log(num); 
       } 
       inner();///////////////////////////// 
      } 

setInterval(countNum,1000) 
+0

vergiss ich habe herausgefunden, was ich sonst falsch mache lol – Brandon

+0

'function countNum() { var num = 0; Funktion inner() { num ++; console.log (num); } innere(); } setInterval (countNum, 300); 'funktioniert. kann 'Let' nicht die ganze Zeit arbeiten – saiyan

1

Die setInterval() -Methode ruft eine Funktion oder wertet einen Ausdruck in bestimmten Intervallen.

setInterval(function(){ alert("Hello"); 
countNum(); 
}, 3000); 

Wenn Ihre Anforderung ist, die innere Funktion auszuüben. Rück innere Funktion von COUNTNUM und gehen Sie wie

function countNum(){ 
    let num=0; 
    return function(){ 
      num++ 
      console.log(num); 
       } 
      } 

setInterval(function(){ 
    var inner = countNum(); 
    inner(); 
}, 3000);