在JavaScript中使用OOP启动和停止计时器

时间:2019-04-01 00:02:29

标签: javascript oop

我尝试在JavaScript中首次使用面向对象的Javascript创建启动和停止计时器。我没有启动计时器的问题。问题是最重要的,因为即使我使用clearIntervalclearTimeout,启动时它也不会停止。请问我的代码有什么问题,我该如何解决?

function StopWatch() {
    let timer = 0;
    let starter = function() {
        setInterval(function() {
            ++timer;
        }, 1000);
        // if(this.start) {
        //     throw new Error(`Timer already started`);
        // }
        console.log(timer);
    };
    let stopper = function() {
        window.clearTimeout(starter);
        console.log(timer)
    };
    this.start = starter;
    this.stop = stopper;
}
const sw = new StopWatch();
console.log(sw);

谢谢。

1 个答案:

答案 0 :(得分:0)

setInterval函数返回一个引用,您将其传递给clearInterval

const interval;
//... 
interval = setInterval(...);
//... 
clearInterval(interval);