>  기사  >  백엔드 개발  >  javascript - 숫자는 1초마다 1씩 증가하고 50이 될 때까지 출력됩니다. js를 사용하여 이를 구현하는 방법은 무엇입니까?

javascript - 숫자는 1초마다 1씩 증가하고 50이 될 때까지 출력됩니다. js를 사용하여 이를 구현하는 방법은 무엇입니까?

WBOY
WBOY원래의
2016-10-17 09:30:093158검색

질문에서처럼 closure와 setTimeout 함수를 사용하여 문제를 해결하는 방법은 무엇입니까?
PHP 구현도 환영합니다

답글 내용:

질문에서처럼 closure와 setTimeout 함수를 사용하여 문제를 해결하는 방법은 무엇입니까?
PHP 구현도 환영합니다

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

setTimeout을 사용하시면 클리어하실 필요가 없습니다.

<code>void function loop(i) {
    if (i <= 50) {
        console.log(i);
        setTimeout(loop.bind(this, ++i), 1000);
    }
}(1);</code>

클로저를 사용하지 않는 것 같으니 이렇게 해보겠습니다.

<code>void function loop(i) {
    if (i <= 50) {
        console.log(i);
        setTimeout(function() {loop(++i);}, 1000);
    }
}(1);</code>

자, 이제 종료되었습니다.

함수 개수(){

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

멈추면 안 되나요?

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.