This is because when a function is called from setTimeout, its context is set to window. It looks like this:
this.start.call(window)
So, when start()called again, thisis window, and since it window.startdoes not exist, it does not start again.
You can try this as follows:
setTimeout(this.start.bind(this), 2000);
source
share