gpt4 book ai didi

带有 'this' 的 Javascript setTimeout 函数

转载 作者:行者123 更新时间:2023-11-29 20:12:14 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
setTimeout and “this” in JavaScript

我正在尝试对对象设置超时。使用一些测试代码(见下文),我想减少 timerPos 直到它达到 0。当我使用下面的代码时,第一次 timerInc() 被 startTimer() 调用时,它将达到 3(如预期)。当超时调用 TimerInc() 时,我将收到 timerPos 变量的“未定义”。我做错了什么?

function start(){
var alert = new Alert(3);
alert.startTimer();

}
function Alert(timer) {
this.timerMinutes = timer;
this.timerPos = 0;

this.startTimer = function() {
this.timerPos = this.timerMinutes+1;
this.timerInc();
};


this.timerInc = function() {
if (this.timerPos > 0){
this.timerPos--;
// first time this function gets called timerPos is 3
// the second time when its called by the timeout it
// will be 'undefined'
setTimeout(this.timerInc,1000);
}
};
}

(在超时中使用 this.timerInc() 而不是 this.timerInc 对我不起作用,使用引号也不行)

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com