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

setTimeout用法

setTimeout用法

艳妮子Yeah 2016-09-02 19:28:25
这两个写法什么区别,为什么写成第二种的时候不起作用1、var CountZeros=setTimeout(function() {       CountZero()       },1000)2、 var CountZeros=setTimeout("CountZero()",1000);
查看完整描述

1 回答

已采纳
?
stone310

TA贡献361条经验 获得超191个赞

第一种写法是声明匿名函数,相当于假如我给函数赋个名字abc,然后setTimeout(abc,1000),只是你那种写法是匿名的

第二种写法是字符串写法,相当于内部执行了eval(),这种写法你会发现有时能执行有时不能执行,因为字符串写法只能捕获到全局作用域,就是说CountZero这个函数必须放在全局作用域下才能被执行,

而setTimeout(abc,1000)这种写法则既可以捕获全局作用域,也可捕获同一个局部作用域;

因此第二种字符串写法是不推荐的,不规范而且功能上有限制,eval()也有安全问题

查看完整回答
1 反对 回复 2016-09-03
  • 1 回答
  • 0 关注
  • 1629 浏览

添加回答

举报

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