php 从1累加到50,javascript - 一个数每隔一秒执行加1并打印出来,一直加到50停止,用js如何实现?...

本文探讨了JavaScript中闭包和setTimeout函数的使用,展示了如何在计数场景下结合两者,实现定时任务并控制其停止。同时,对比了不同实现方式,包括使用clearTimeout和避免使用clearTimeout的方法。此外,还提供了PHP实现的类似功能作为参考。
摘要由CSDN通过智能技术生成

如题,用到闭包,和setTimeout函数怎么解决?

也欢迎php的实现

回复内容:

如题,用到闭包,和setTimeout函数怎么解决?

也欢迎php的实现

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)

(function(){

var i=0;

var end=setInterval(function(){

if(i>=50){

clearInterval(end);

}

console.log(i);

i++;

},1000);

})()

用setTimeout的话,就不需要clear了。

void function loop(i) {

if (i <= 50) {

console.log(i);

setTimeout(loop.bind(this, ++i), 1000);

}

}(1);

好像没用到闭包,那么这样吧:

void function loop(i) {

if (i <= 50) {

console.log(i);

setTimeout(function() {loop(++i);}, 1000);

}

}(1);

OK,这样就有闭包了。

function Count(){

var counter=0;

function addCount(){

counter++;

console.log(counter);

if(counter==50){

return false;

}

setTimeout(addCount,1000);

}

return addCount;

}

var myCount=new Count();

myCount();

var task = function (){

var val = 0;

var target = 50;

(function add(){

val++;

if(val === target)

return;

setTimeout(add, 1000);

})();

}

你这个停不下来吧

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值