我有这个Javascript类:
function PageManager () {
this.timeoutHandler = function () {
alert ("hello");
}
this.startTimeout = function () {
this.timeout = setTimeout ("this.timeoutHandler()", 1000);
}
}
Run Code Online (Sandbox Code Playgroud)
当我打电话时,obj.startTimeout ();我收到此错误:
this.timeoutHandler is not a function
Run Code Online (Sandbox Code Playgroud)
如何在超时中调用类函数?
如果将字符串传递给setTimeout,则在全局范围内评估代码.始终传递函数参考:
this.startTimeout = function () {
var self = this;
this.timeout = setTimeout(function() {
self.timeoutHandler();
}, 1000);
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您不需要对内部对象的引用timeoutHandler,则可以直接传递该函数:
this.timeout = setTimeout(this.timeoutHandler, 1000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |