突然被同事问到 setInterval的一些小问题,这里做过小记录,一些小坑,看代码
setInterval(test,1000);
setInterval(test(),1000);
setInterval("test()",1000);
function test(){
console.log(1)
}
三种不同的调用方式。
(1)setInterval(test,1000),这是一种很常见的调用方法,一面打印一次1,没问题。
(2)setInterval(test(),1000),只打印了一次1。基础好的估计一下就看出来了,test()这种方式,明显就是对函数的直接调用了,也就是说,setInterval函数还没执行前,test()就已经调用了,要想这个函数持续被调用,那么函数就必须要有返回可执行的函数
setInterval(test(),1000);
function test(){
return function(){
console.log(1)
}
}
(3)setInterval("test()",1000),全局作用域下和第一种一样