javascript - Eine Zahl wird jede Sekunde um 1 erhöht und ausgedruckt, bis sie 50 erreicht. Wie implementiert man dies mit js?

WBOY
Freigeben: 2016-10-17 09:30:09
Original
3138 Leute haben es durchsucht

Wie in der Frage: Wie kann das Problem mithilfe der Funktion „closure“ und „setTimeout“ gelöst werden?
PHP-Implementierung ist ebenfalls willkommen

Antwortinhalt:

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>
Nach dem Login kopieren

<code>(function(){
    var i=0;
    var end=setInterval(function(){
        if(i>=50){
            clearInterval(end);
        }
        console.log(i);
        i++;
    },1000);
})()</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

<code>var task = function (){
    var val = 0;
    var target = 50;
    
    (function add(){
        val++;
        if(val === target)
            return;
            
        setTimeout(add, 1000);    
    })();
}</code>
Nach dem Login kopieren

Kannst du nicht aufhören?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!