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