为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

陪伴而非守候 2021-11-03 11:07:12
看代码: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);代码执行一遍就报错
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

setTimeout("xxx",500)

双引号中的作用域不捕捉局部变量,因此会报错误

如果你需要在双引号中可以在外部定义一个变量


var  now;               window.onload = function(){      var dom = document.getElementById("nowTime");             var getNowTime = function(){        return Date().split(" ");      }            var setNowTime = function(){        var arr = getNowTime();        dom.innerHTML = arr;        now=setNowTime        setTimeout("now()", 500);      }            setNowTime();    }


查看完整回答
反对 回复 2021-11-07
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

setTimeout()第一个参数传入的是code代码,那不论这个代码是函数名称比如不加引号的setNowTime 还是加引号的一串代码 比如“setNowTime()”; 都是可以运行的呀。

查看完整回答
反对 回复 2021-11-07
  • 2 回答
  • 0 关注
  • 295 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信