Challenge 3 — Solution Task: Create an object stopwatch with elapsed: 0 and a method start() that uses setInterval with an ARROW function to increment elapsed and log it every second, for 3 seconds (then stop with clearInterval). Confirm elapsed actually increases by logging it. const stopwatch = { elapsed: 0, start() { const intervalId = setInterval(() => { this.elapsed++; console.log(this.elapsed); if (this.elapsed >= 3) { clearInterval(intervalId); } }, 1000); } }; stopwatch.start(); Expected output (one line per second, over 3 seconds): 1 2 3 Notes: - The arrow function passed to setInterval has no this of its own, so it inherits this from start() — which is stopwatch, since start() was called as stopwatch.start(). Using a regular function here instead would have made this undefined inside the interval callback, breaking this.elapsed entirely. - intervalId is captured by the same closure (Chapter 2) that the arrow function uses, which is how clearInterval(intervalId) can stop the very interval the callback is running inside. - elapsed is checked AFTER incrementing it, so the interval fires exactly 3 times before clearing itself.