var time = 0;
function time(){
setInterval(time++, 500);
if (time > 1800){
time = 0;
}
setInterval(alert("The time is" + time), 500);
}
我试图每15分钟创建一个基于半秒的计时系统。
不幸的是,我无法测试,因为第二个setInterval
没有运行。
我认为这是因为代码不会继续运行,因为setInterval
会继续循环。
我认为狭隘的问题是如何让所有这三个同时运行。
更广泛的是一个程序对象如何定位?
答案 0 :(得分:1)
您的代码存在很多问题....
首先,你有一个名为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
答案 1 :(得分:0)
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(将失败)进行比较。我想你想要两个变量:timeCounter
和timeFunction
。
var timeCounter = 0;
function timeFunction(){
timeCounter++;
if (timeCounter > 1800){
timeCounter = 0;
}
alert("The time is" + timeCounter);
setInterval(timeFunction, 500);
}
但是如果你运行这个功能,你会非常抱歉,因为它会一直弹出警报,直到你杀死窗口(弹出窗口之间的半秒间隔)。
答案 2 :(得分:0)
首先, 时间是变量,时间是函数==>这是错误的。 ===>重新命名你的功能。
其次:
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