请教一个无参函数调用小括号的问题
javascript吧
全部回复
仅看楼主
level 4
chenqz0826 楼主
有一段间歇调用程序:
var num=0;
var max=10;
var intervalID=null;
function incrementNumber(){
num++;
document.write("Hello,World!"+"<br>");
if(num==max {
clearInterval(intervalID);
document.write("OK,Done!.");
}
}
intervalID=setInterval(incrementNumber,500)
现在这个程序可以正常运行,即每500毫秒显示一次“Hello,World!”,但当我把最后一行的函数调用incrementNumber加个括号,即:incrementNumber()后,程序只显示了一次“Hello,World!”,然后就停止了,请问这是为什么?无参函数调用不能加括号么?
2022年04月12日 03点04分 1
level 4
chenqz0826 楼主
补充:而当我用超时调用的setTimeout来修改替代一下上面的效果,此时加上小括号incrementNumber()却又正常了,真奇怪。
如下:
var num=0;
var max=10;
var intervalID=null;
function incrementNumber(){
num++;
document.write("Hello,World!"+"<br>");
if(num<max) {
setTimeout(incrementNumber,500);
} else {
document.write("OK,Done.");
}
}
setTimeout(incrementNumber(),500)
用了setTimeout,incrementNumber()加了括号也可以正常运行十次并停止。
难道问题出在setInterval和setTimeout上?
2022年04月12日 04点04分 2
level 5
[汗]
2022年04月13日 07点04分 4
level 5
setInterval和setTimeout第一个参数接受一个回掉函数,你这里放的是一个函数调用,且没有指定返回值,就等于是undefined。你所看到的效果只是你函数调用的效果[摊手]
2022年04月13日 08点04分 5
[真棒]明白了!!函数名和函数执行是不一样的,我混淆了概念了!多谢指!!
2022年04月13日 11点04分
1