var sessionexpiretime = setInterval(checkSessionIsExpire, 1000); 可以
var sessionexpiretime = setInterval(checkSessionIsExpire(), 1000); 只执行一次
var sessionexpiretime = setInterval(checkSessionIsExpire, 1000); 可以
var sessionexpiretime = setInterval(checkSessionIsExpire(), 1000); 只执行一次
首先,setInterval
的第一个参数是一个 function,它是一个回调函数,是需要被 setInterval 执行的,具体什么时候执行,也是 setInterval 说了算的(当然,根本上,还是由你传入的第二个参数决定)。如果你带了(),那就代表,你自己把它执行了,而没有交给 setInterval 去执行,你传入的第一个参数,也就只是一个 function 执行后的值而已,而不是 function 本身。
ps:多嘴一句,js基础很差,建议系统整理下 js 基础,再考虑其他的。
简单说,setInterval的第一个参数是一个回调函数,你加一个括号传入的是这个函数的返回值而不是函数本身,只执行一次是因为你在调用setInterval的时候函数自己执行了而不是该定时器带动函数去执行。
//2选1,推荐第一种
var sessionexpiretime = setInterval(checkSessionIsExpire, 1000);
var sessionexpiretime = setInterval('checkSessionIsExpire()', 1000);
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
你要明白带括号是啥意思呀,你可以执行以下代码
结果是
意思就是不带括号的函数名本身
getVal
才代表这个函数,加了括号就变成调用这个函数了,表达式的值就变成这个函数执行后的返回值了。