javascript for()循环里面的setInterval闭包问题, 看看我哪写错了

ShowCountDown(a,b,c,d,e){
}
for(vari=0;i<4;i++){
vartimeString='';
vartime=timeString.split(',');
varfilterArray=time[i].split('-');
window.setInterval((function(a,b,c,d,e){
ShowCountDown();
})(filterArray[0],filterArray[1],filterArray[2],'time',i)
,interval);
}
qq_遁去的一_1
浏览 450回答 2
2回答

繁星coding

你的写法有问题,setInterval函数第一个参数接收的是一个function对象或者是一个代码片段的字符串表示(这个很拗口,说白了就是把你要执行的代码用“”包起来)。而你现在这种写法是先执行的匿名函数,然后将匿名函数的返回值给了setInterval的第一个参数。显然你的匿名函数并没有返回任何东西。你可以这样写for(vari=0;i

LEATH

setInterval的第一个参数是传一个function,你这里是已经执行了匿名函数,也就是说是这个函数的返回值。试下下面的代码:setInterval(function(){(function(a,b,c,d,e){ShowCountDown();})(filterArray[0],filterArray[1],filterArray[2],'time',i);},interval);)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript