首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重新调用此函数?没有使用ES6的经验

如何重新调用此函数?没有使用ES6的经验
EN

Stack Overflow用户
提问于 2019-04-14 21:30:24
回答 1查看 44关注 0票数 0

我不知道如何在页面加载时再次调用counter()

我想我做了一个新的柜台“实例”。这是可行的,但必须有一个正确的方法。我需要在replay()中调用它。

代码语言:javascript
复制
/**
 * @fileoverview demo 
 */

class ReVideo {
    constructor() {
        this.time = 5;
...
        this.timer = document.getElementById("update");
        this.counter = setInterval(() => this.countdown(), 1000);
        this.fader = fader();
        this.counter2 = "";
...

        this.retry.addEventListener('click', () => this.replay());
...
    }

    countdown() {
        this.time--;
        if (this.time > -1) {
            this.timer.innerHTML = "seconds remaining: " + this.time;
        } else {
            this.timer.innerHTML = "You Lose!";
            this.watch.style.display = "block";
            this.retry.style.display = "block";
            clearInterval(this.counter);
            clearInterval(this.counter2);
            this.coins++;
            this.coinCount.innerHTML = "Coins: " + this.coins;
        }
        this.notice.style.visibility = "visible";
        this.notice.innerHTML = "Loaded";
    }

...

    replay() {
        this.time = 5;
        this.watch.style.display = "none";
        this.notice.style.visibility = "hidden";
        fader("Loaded");
        this.retry.style.display = "none";
        this.counter2 = setInterval(() => this.countdown(), 1000);
        this.counter2;
    }
...

}
new ReVideo();

如果我说counter(),它就不会运行;

EN

回答 1

Stack Overflow用户

发布于 2019-04-14 21:43:42

您可以使用一个辅助counter函数来返回intervalID,如下所示:

代码语言:javascript
复制
counter () {
  const interval = setInterval(() => this.countdown(), 1000);
  return interval;
}

在你的构造函数中,你可以将intervalID赋值给一些变量,比如:

代码语言:javascript
复制
this.interval = counter();

然后,您可以通过像clearInterval(this.interval);一样传递保存intervalID的变量来停止计数器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55675825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档