Heim > Artikel > Backend-Entwicklung > javascript - Eine Zahl wird jede Sekunde um 1 erhöht und ausgedruckt, bis sie 50 erreicht. Wie implementiert man dies mit js?
Wie in der Frage: Wie kann das Problem mithilfe der Funktion „closure“ und „setTimeout“ gelöst werden?
PHP-Implementierung ist ebenfalls willkommen
Wie in der Frage: Wie kann das Problem mithilfe der Funktion „closure“ und „setTimeout“ gelöst werden?
PHP-Implementierung ist ebenfalls willkommen
<code>var count = (function() { var timer; var i = 0; function change(tar) { i++; console.log(i); if (i === tar) { clearTimeout(timer); return false; } timer = setTimeout(function() { change(tar) }, 1000) } return change; })() count(50)</code>
<code>(function(){ var i=0; var end=setInterval(function(){ if(i>=50){ clearInterval(end); } console.log(i); i++; },1000); })()</code>
Wenn Sie setTimeout
verwenden, ist kein Löschen erforderlich.
<code>void function loop(i) { if (i <= 50) { console.log(i); setTimeout(loop.bind(this, ++i), 1000); } }(1);</code>
Es scheint, dass der Abschluss nicht verwendet wird, also machen wir Folgendes:
<code>void function loop(i) { if (i <= 50) { console.log(i); setTimeout(function() {loop(++i);}, 1000); } }(1);</code>
OK, jetzt gibt es eine Schließung.
Funktion Count(){
<code> var counter=0; function addCount(){ counter++; console.log(counter); if(counter==50){ return false; } setTimeout(addCount,1000); } return addCount; } var myCount=new Count(); myCount();</code>
<code>var task = function (){ var val = 0; var target = 50; (function add(){ val++; if(val === target) return; setTimeout(add, 1000); })(); }</code>
Kannst du nicht aufhören?