Ich habe ein Problem gesehen, das wahrscheinlich so aussah.
name = 'out of you'
foo = function(){
this.name = 'xxoo';
foo.prototype.say = function(){
console.log(this.name); }
f = new foo();
f.say(); // Dieser Satz wird xxoo ausgegeben
setTimeout(f.say, 500); // Dieser Satz wird aus Ihnen ausgegeben
Dies ist eine Gefahr, da JavaScript beim Aufruf generiert wird und auch mit dem Kontext zusammenhängt. So lösen Sie es. Ich habe es getestet und Call verwendet.
setTimeout.call(foo(), f .say, 500)
Einige Lösungen im Internet
Dies weist auf das Problem von setTimeout in js hin
Verwendung von Timer in JavaScript
Letztendlich geht es immer noch darum, das zu verstehen.
Eines Tages kann ich weiterschreiben, wenn ich es besser verstehe