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
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn