class Tracker { count = 0; constructor() { window.addEventListener("mousedown", this.mouseDown); window.addEventListener("mouseup", this.mouseUp); } mouseDown = (ev: MouseEvent) => { window.addEventListener("mousemove", this.mouseMove); } mouseUp = (ev: MouseEvent) => { window.removeEventListener("mousemove", this.mouseMove); } mouseMove = (ev: MouseEvent) => { this.count++; console.log(this.count); } } new Tracker();