<script>vari=0;functionfun(){console.log(i);varobj=document.getElementById("test");obj.className="test"+(i++%2);}functiontest(){setInterval(fun(),3000);}</script></head><bodyonload="test()"><divid="test"></div>

当访问此页面时浏览器的效果是此fun方法只执行了一次,而没有每隔3秒执行一次。原因在于setInterval方法里传方法名而不是方法调用即修改为如下:

<script>vari=0;functionfun(){console.log(i);varobj=document.getElementById("test");obj.className="test"+(i++%2);}functiontest(){setInterval(fun,3000);//setInterval("fun()",3000);}</script></head><bodyonload="test()"><divid="test"></div>