如何清除 Javascript 对象中的 setTimeout?
How to clear setTimeout inside Javascript Object?
我有一个对象,里面有一些函数,我在里面使用 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();但它并没有阻止它。知道我在这里做错了什么吗?
var TESTVAR2
是在其声明的函数中的局部变量。它不是对象的 属性。
如果您想将其作为对象的 属性 进行访问,则必须这样定义它:
ExpireSession.killSession.TESTVAR2 = setTimeout(function () {
(您也许可以使用 this
,具体取决于您调用函数的方式)。
因为JavaScript有功能范围,TESTVAR2
只会在killSession
内定义。要引用它,您可以将其设置为 ExpireSession 的 属性:
killSession: function () {
this._TESTVAR2 = setTimeout(function () {
window.location.href = "error/expired.aspx";
}, 15000);
},
stopTimers: function () {
clearTimout(this._TESTVAR2);
}
我有一个对象,里面有一些函数,我在里面使用 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();但它并没有阻止它。知道我在这里做错了什么吗?
var TESTVAR2
是在其声明的函数中的局部变量。它不是对象的 属性。
如果您想将其作为对象的 属性 进行访问,则必须这样定义它:
ExpireSession.killSession.TESTVAR2 = setTimeout(function () {
(您也许可以使用 this
,具体取决于您调用函数的方式)。
因为JavaScript有功能范围,TESTVAR2
只会在killSession
内定义。要引用它,您可以将其设置为 ExpireSession 的 属性:
killSession: function () {
this._TESTVAR2 = setTimeout(function () {
window.location.href = "error/expired.aspx";
}, 15000);
},
stopTimers: function () {
clearTimout(this._TESTVAR2);
}