如何让If Else和其他函数一起运行


var time = 0;
function time(){
    setInterval(time++, 500);
    if (time > 1800){
        time = 0;
    }
    setInterval(alert("The time is" + time), 500);
}

我试着创建一个基于每15分钟半秒的计时系统。不幸的是,我不能测试,因为第二个setInterval没有运行。

我想这是由于代码没有继续运行,因为setInterval一直循环。

我想狭义的问题应该是如何让这三个程序同时运行。

更广泛的将是一个程序如何面向对象?

你的代码有很多问题....

首先,你有一个名为time的变量和一个名为time的函数…这会给你带来没完没了的麻烦。

第二,setInterval的第一个参数必须是一个函数(或一个字符串,但我犹豫甚至提到,因为这是一个坏主意,我不想鼓励它)。

第三,除非您稍后在某个地方实际调用time()(您没有在代码中显示它),否则setInterval调用都不会被执行。

你可以这样重写你的代码:

var _time = 0;
function time() {
    _time++;
    if(_time > 1800) _time = 0;    
    setTimeout(function() { alert('The time is ' + _time); }, 500);
}
setInterval(time, 900000);  // 900000 ms = 15 minutes

setInterval的第一个参数必须是一个函数!这样的:

var time = 0;
function time(){
    setInterval(time++, 500);
    if (time > 1800){
        time = 0;
    }
    setInterval(function() { alert("The time is" + time)}, 500);
}

你有第二个问题,你是分配time为零,然后分配给一个函数,然后增加它(设置它NaN),然后比较它到1800(这将失败)。我认为你需要两个变量:timeCountertimeFunction

var timeCounter = 0;
function timeFunction(){
    timeCounter++;
    if (timeCounter > 1800){
        timeCounter = 0;
    }
    alert("The time is" + timeCounter);
    setInterval(timeFunction, 500);
}

但是如果你运行这个函数,你会非常抱歉,因为它会一直弹出警告,直到你关闭窗口(在弹出窗口之间的半秒间隔)

首先,时间是个变量,时间是个函数==>那就错了。===>重命名函数。

其次:

setInterval (first, seconde)的第一个参数应该是一个函数。

var time = 0;
function timefn(){
    setInterval(function() { time++}, 500);
    if (time > 1800){
        time = 0;
    }
    setInterval(function() { alert("The time is" + time)}, 500);
}

如果你想要一个被执行的代码,让函数名:

 function time(){
        setInterval(function() { time.time++}, 500);
        if (time.time > 1800){
            time.time = 0;
        }
        setInterval(function() { alert("The time is" + time.time)}, 500);
    }
    time.time = 0;

这是因为函数可以作为对象使用>因此,我们为time对象(函数)添加新属性,并将其称为time

相关内容

  • 没有找到相关文章

最新更新