我有一个对象,我在里面有一些函数,我在里面使用setTimout。我试图使用clearTimeout清除超时..但是我没有正确对待它。
var ExpireSession = {
killSession: function () {
var TESTVAR2 = setTimeout(function () {
window.location.href = "error/expired.aspx";
}, 15000);
},
stopTimers: function (){
clearTimeout(ExpireSession.killSession.TESTVAR2)
}
}
在15秒之前我触发:ExpireSession.stopTimers();但它并没有阻止它。我知道我在这里做错了吗?
答案 0 :(得分:2)
var TESTVAR2
是一个变量,它是在其声明的函数的本地变量。它不是对象的属性。
如果要将其作为对象的属性进行访问,则必须将其定义为:
ExpireSession.killSession.TESTVAR2 = setTimeout(function () {
(您可能可以使用this
,具体取决于您如何调用该函数。)
答案 1 :(得分:0)
由于JavaScript具有功能范围,TESTVAR2
只会在killSession
内定义。要引用它,您可以将其设置为ExpireSession的属性:
killSession: function () {
this._TESTVAR2 = setTimeout(function () {
window.location.href = "error/expired.aspx";
}, 15000);
},
stopTimers: function () {
clearTimout(this._TESTVAR2);
}