私は問題を見ました、おそらくこれはそれがどのように見えるかです。
コードコピーは次のとおりです。
name = 'out you'
foo = function(){
this.name = 'xxoo';
}
foo.prototype.say = function(){
console.log(this.name);
}
f = new foo();
f.say(); //この文はxxooを出力します
setimeout(f.say、500); //この文はあなたから出力されます
これは落とし穴です。このJavaScriptは、呼び出されたときに生成され、コンテキストに関連しています。これはそれを解決する方法です。私はそれをテストし、通話を使用しました。
コードコピーは次のとおりです。
setimeout.call(foo()、f.say、500)
オンラインでいくつかのソリューション
JSのSetimeOutのこのポインティングの問題
JavaScriptでタイマーを使用します
最終的に、それは実際にこれを理解する問題です。
ある日、私はそれを理解し、書き続けます