Saya melihat masalah, mungkin seperti ini.
Salinan kode adalah sebagai berikut:
name = 'Out of You'
foo = function () {
this.name = 'xxoo';
}
foo.prototype.say = function () {
console.log (this.name);
}
f = foo baru ();
f.say (); // kalimat ini akan menghasilkan xxoo
setTimeout (f.say, 500); // kalimat ini akan mengeluarkan Anda
Ini adalah jebakan. JavaScript ini dihasilkan ketika dipanggil dan terkait dengan konteksnya. Inilah cara menyelesaikannya. Saya mengujinya dan menggunakan panggilan.
Salinan kode adalah sebagai berikut:
setTimeout.call (foo (), f.say, 500)
Beberapa solusi online
Masalah penunjuk ini dengan SetTimeout di JS
Menggunakan timer dalam javascript
Pada akhirnya, ini sebenarnya adalah pertanyaan untuk memahami hal ini.
Suatu hari saya memahaminya dan terus menulis