JS定时器的作用域问题

经常会有

var timer=null;

function a(){

timer=setInterval(function(){},1000)

}这类的代码 这样函数内部的timer没有用var声明岂不就是全局变量了?

为什么要这样呢?不是很明白

流连牛年榴莲甜
浏览 2567回答 2
2回答

千秋此意

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

__innocence

函数闭包。在函数内部的timer实际上就是外面的timer,函数闭包的存在允许在函数里面调用函数外面的方法或者变量。这是JavaScript语言相比于Java、C++比较特殊的地方。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript