猿问

setTimeout() 中加不加''的问题

因为是初学者,问题比较多.首先感谢热心的朋友们给予我指点,十分的感激你们.

这次遇到的疑惑是:setTimeout() 中加不加''的问题.

我在setTimeout() 中调用函数名为fun1的函数,两种方法,

1,不带引号写函数名fun1,

2,带引号时需要写fun1();

这里面的原理是什么呢?

或者指点我一下,去看哪本书的哪个副本能把这个问题理解清楚.再次感谢!


补充:

我之前做了一个实验,当时的理解是,不带()是返回了一个函数指针,带()是返回函数计算后的返回值.所以=fun()会使fun函数自动执行一次,而=fun并不会使fun函数执行.所以在setTimeout中始终会写"fun()"而不是"fun",因为我觉得写成"fun"的时候,给setTimeout的是一个指针而不是函数计算后的返回值.但是在后来的试验中,发现直接写成setTimeout(fun,1000)不带引号和括号也是可以调用函数的,所以有点蒙了,不明白这里是什么原理.

留白未来
浏览 1382回答 1
1回答

木子七

直接调用该方法:setTimeout(fun1,1000);要带参数:setTimeout("fun1('obj')",1000)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答