У меня была похожая проблема. Проблема заключалась в том, что я пытался вызвать метод изнутри себя через setTimeout (). Что-то вроде этого, что не работает для меня:
function myObject() {
this.egoist = function() {
setTimeout( 'this.egoist()', 200 );
}
}
myObject001 = new myObject();
myObject001.egoist();
Следующее ТАКЖЕ НЕ РАБОТАЕТ:
... setTimeout( egoist, 200 );
... setTimeout( egoist(), 200 );
... setTimeout( this.egoist, 200 );
... setTimeout( this.egoist(), 200 );
... setTimeout( function() { this.egoist() }, 200 );
Решением было использовать оператор () следующим образом:
function myObject() {
this.egoist = function() {
with (this) { setTimeout( function() { egoist() }, 200 );}
}
}
myObject001 = new myObject();
myObject001.egoist();
Конечно, это бесконечный цикл, но смысл, который я здесь подчеркиваю, другой.
Надеюсь, это поможет:)