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

JS定时器的作用域问题

JS定时器的作用域问题

流连牛年榴莲甜 2017-07-19 16:57:56
经常会有var timer=null;function a(){timer=setInterval(function(){},1000)}这类的代码 这样函数内部的timer没有用var声明岂不就是全局变量了?为什么要这样呢?不是很明白
查看完整描述

2 回答

?
千秋此意

TA贡献158条经验 获得超187个赞

因为你可能需要在另外一个函数里关掉这个定时器,比如你在a函数开启了这个timer,然后写了b函数,在某种情况下调用b函数,关掉这个定时器

查看完整回答
反对 回复 2017-07-19
?
__innocence

TA贡献313条经验 获得超208个赞

函数闭包。在函数内部的timer实际上就是外面的timer,函数闭包的存在允许在函数里面调用函数外面的方法或者变量。这是JavaScript语言相比于Java、C++比较特殊的地方。

查看完整回答
反对 回复 2017-07-19
  • 2 回答
  • 0 关注
  • 2566 浏览
慕课专栏
更多

添加回答

举报

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