Javascript setInterval调用中参数之间的差异

Javascript setInterval调用中参数之间的差异,javascript,setinterval,Javascript,Setinterval,这些setInterval调用与应该使用的调用之间有什么区别 setInterval("myFunction()",1000) setInterval("myFunction",1000) setInterval(myFunction(),1000) setInterval(myFunction,1000) 我猜JS对前两个(字符串)使用eval()并直接调用后两个 另外,我不明白带括号和不带括号的调用之间的区别。带括号的直接调用它,然后定期调用它的返回值?正确;前两种方法使用eval,必须不

这些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
,就像调用任何其他函数一样。

因此,如果我想使用
setInterval
,它应该以立即调用给定函数开始,我使用括号。如果我不想称之为正确的,知道,但在给定的时间内,我使用它没有。对吗?@Warren:
setInterval(myFunction(),1000)
只有在
myFunction
返回不同的函数时才有意义。否则,您将把
undefined
传递到
setInterval