function infiniteSpell(){ setTimeout(infiniteSpell,0); } code example
Example: javascript this in settimeout
function func() {
this.var = 5;
this.changeVar = function() {
setTimeout(() => { //Don't use function, use arrow function so 'this' refers to 'func' and not window
this.var = 10;
}, 1000);
}
}
var a = new func();
a.changeVar();