gpt4 book ai didi

javascript - setInterval 在类内部创建游戏内时钟

转载 作者:行者123 更新时间:2023-12-02 22:38:15 25 4
gpt4 key购买 nike

目前,我正在尝试构建一个“游戏内”时钟,可以说是我正在构建的应用程序。我想要的是创建一个 Time 类并添加一个 setInterval() 来增加秒属性的时间来测试


class Time {
constructor() {
this.seconds = 0;
this.countTime = setInterval(this.increaseTime, 1000)
}

increaseTime() {
this.time++
console.log(this.seconds)
}

}

let time = new Time();

我期望的是,我的函数会使用我传递的 setInterval 函数来增加 this.seconds 属性。相反,在控制台中它每秒都会打印出 NaN 。有人知道发生了什么事吗?

最佳答案

这是因为 setInterval 正在全局上下文中运行回调,而 this 并未指向该类。您可以将 this 绑定(bind)到词法作用域中的此变量或使用箭头函数。

  class Time {
constructor() {
this.seconds = 0;
this.countTime = setInterval(this.increaseTime.bind(this), 1000)
}

increaseTime() {
this.seconds++
console.log(this.seconds)
}

}

let time = new Time();

关于javascript - setInterval 在类内部创建游戏内时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58673429/

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