js定时器setTimeout(longPress,500);和setTimeout("longPress()",500);

js定时器setTimeout(longPress,500);和setTimeout("longPress()",500);
这两种写法是否有区别?求指教,谢谢!
阅读 4.1k
4 个回答

没区别。
之所以 setTimeout 第一个参数支持 string 看下面实例。

http://www.w3school.com.cn/ti...

<html>
<head>
<script type="text/javascript">
function timedText()
{
var t1=setTimeout("document.getElementById('txt').value='2 seconds!'",2000)
var t2=setTimeout("document.getElementById('txt').value='4 seconds!'",4000)
var t3=setTimeout("document.getElementById('txt').value='6 seconds!'",6000)
}
</script>
</head>

<body>
<form>
<input type="button" value="显示计时的文本!" onClick="timedText()">
<input type="text" id="txt">
</form>
<p>在按钮上面点击。输入框会显示出已经流逝的 2、4、6 秒钟。</p>
</body>

</html>

setTimeout 还可以支持直接编写 js 代码。通过 js 中的 eval 就可以执行。

js高级编程里写的setTimeout的第一个参数需要“”包裹,实际运用过程好像函数名的话,无所谓。
这里的“”也可以直接传递可以运行的js代码,类似eval()实现的功能。

效果一样,推荐用前者,后者双重求值,类似的还有 eval

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题