今天偶然在网上看到一个讨论如标题二者的关系(见http://tech.ddvip.com/2008-12/122881301598652.html ),不知道时隔近两年,这位仁兄是否有了更深的认识。
具体区别见代码:
//setTimeout function foo(){ ... //具体业务 setTimeout(foo,1000); } //这里每次foo执行"..."部分的业务后再过1000ms才会再次调用foo函数 setTimeout(foo,1000); //这里呢?每次刚进入foo函数体的时候就开始计时,到了1000ms就会再次调用foo, //初看没什么区别,如果foo的业务逻辑比较复杂,执行的时间较长(假设超过1000ms),那么会怎样? //答案是在业务逻辑没执行完的时候foo被再一次调用了。 //那么setTimeout呢?它是在具体业务逻辑执行完后,再过1000ms才会再次调用foo,就这么个区别,明白了不:) setInterval(foo,1000);