麻烦帮忙看一下这个问题,关于在setTimeout()中函数加双引号和不加有什么区别?

看代码:HTML结构我在这里就不写了,代码实现-时间显示
第一种:带双引号的 
<head> 
<div id="nowTime"></div>
<script type="text/javascript">
var dom = document.getElementById("nowTime");

var getNowTime = function(){
return Date().split(" ");
}

var setNowTime = function(){
var arr = getNowTime();
dom.innerHTML = arr[4];

setTimeout("setNowTime()", 500);
}

setNowTime();
</script>
第二种:不带双引号的,放在head标签中,有window.onload加载
<script>
window.onload = function(){
var dom = document.getElementById("nowTime");

var getNowTime = function(){
return Date().split(" ");
}

var setNowTime = function(){
var arr = getNowTime();
dom.innerHTML = arr[4];

setTimeout(setNowTime, 500);
}

setNowTime();
}
</script>
</head>

如何把第二种方法中的换成第一种方法的setTimeout:setTimeout(setNowTime, 500); ==>> setTimeout("setNowTime()", 500);
代码执行一遍就报错

陪伴而非守候
浏览 296回答 2
2回答

守着一只汪

setTimeout("xxx",500)双引号中的作用域不捕捉局部变量,因此会报错误如果你需要在双引号中可以在外部定义一个变量var&nbsp;&nbsp;now;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.onload&nbsp;=&nbsp;function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;dom&nbsp;=&nbsp;document.getElementById("nowTime");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;getNowTime&nbsp;=&nbsp;function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Date().split("&nbsp;");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;setNowTime&nbsp;=&nbsp;function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;arr&nbsp;=&nbsp;getNowTime();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dom.innerHTML&nbsp;=&nbsp;arr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now=setNowTime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout("now()",&nbsp;500);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setNowTime();&nbsp;&nbsp;&nbsp;&nbsp;}

婷婷同学_

setTimeout()第一个参数传入的是code代码,那不论这个代码是函数名称比如不加引号的setNowTime 还是加引号的一串代码 比如“setNowTime()”; 都是可以运行的呀。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
JQuery