Dalam JavaScript, kata kunci ini merujuk kepada objek yang memiliki kod yang sedang dilaksanakan. Ini boleh menjadi masalah apabila menggunakan setInterval, kerana fungsi panggil balik dilaksanakan dalam konteks yang berbeza, kehilangan akses kepada asal ini. Untuk mengatasinya:
Untuk membenarkan akses kepada ini dalam panggilan balik setInterval, kita boleh menggunakan kaedah bind():
this.intervalID = setInterval(this.retrieve_rate.bind(this), this.INTERVAL);
Di sini , bind(this) memastikan bahawa ini dalam panggilan balik retrieve_rate sentiasa merujuk kepada objek di mana selang itu ditetapkan (iaitu, objek di mana prefs ditakrifkan).
Dengan pengubahsuaian ini, anda kini boleh mengakses this.prefs dalam panggilan balik ajax.onload:
ajax.onload = function() { // Access this.prefs here }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Konteks `ini` dalam Panggilan Balik `setInterval` JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!