这些setInterval调用和应该使用的调用之间有什么区别?
setInterval("myFunction()",1000)
setInterval("myFunction",1000)
setInterval(myFunction(),1000)
setInterval(myFunction,1000)我的猜测是JS对前两个(字符串)使用eval(),并直接调用后两个。
而且,我不明白带括号和不带括号的调用之间的区别。带括号的函数直接调用它,然后周期性地调用它的返回值?
发布于 2011-01-18 09:46:35
正确;前两个使用eval,必须不惜一切代价避免。
添加()会立即调用该函数。
Javascript函数实际上是保存函数的变量。
编写setInterval(myFunction, 1000)会将myFunction变量的值传递给setInterval。
编写setInterval(myFunction(), 1000)将调用myFunction,然后将myFunction返回的任何内容传递给setInterval,就像调用任何其他函数一样。
https://stackoverflow.com/questions/4719758
复制相似问题