这些setInterval调用之间有什么区别,应该使用哪些调用?
setInterval("myFunction()",1000)
setInterval("myFunction",1000)
setInterval(myFunction(),1000)
setInterval(myFunction,1000)
我的猜测是,JS在前两个(字符串)上使用eval()并直接调用后两个.
另外,我不理解带括号和不带括号的调用之间的区别.带括号的直接调用它,然后定期调用它的返回值?
解决方法:
正确;前两个使用eval,并且必须不惜一切代价避免.
添加()会立即调用该函数.
Javascript函数实际上是保存函数的变量.
编写setInterval(myFunction,1000)会将myFunction变量的值传递给setInterval.
编写setInterval(myFunction(),1000)将调用myFunction,然后将myFunction返回的任何内容传递给setInterval,就像调用任何其他函数一样.