我怎样才能重新调用这个函数?没有经验的ES6

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我怎样才能重新调用这个函数?没有经验的ES6相关的知识,希望对你有一定的参考价值。

我不知道如何在页面加载后运行第二次调用counter()

我想,我做了一个新的计数器“实例”。这确实有效但必须有正确的方法。我需要在重播()中调用它

/**
 * @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();它不会运行;

答案

你可以有一个帮手counter函数返回intervalID像:

counter () {
  const interval = setInterval(() => this.countdown(), 1000);
  return interval;
}

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

this.interval = counter();

然后你可以通过传递像intervalID这样持有clearInterval(this.interval);的变量来停止计数器

以上是关于我怎样才能重新调用这个函数?没有经验的ES6的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能使用ES6从npm包导入jQuery?

我怎样才能只为第一个函数调用做某事?

请问这个git上开源的node项目怎样才能在windows用Npm跑起来

我怎样才能重新制作准备好的声明? [重复]

斯威夫特:我怎样才能减少 didupdatelocation 调用

我怎样才能提高这个网站的性能? [关闭]