Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengekalkan Konteks `ini` dalam Panggilan Balik `setInterval` JavaScript?

Bagaimanakah Saya Boleh Mengekalkan Konteks `ini` dalam Panggilan Balik `setInterval` JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-11-29 10:34:14272semak imbas

How Can I Preserve the `this` Context in JavaScript's `setInterval` Callback?

Memelihara ini dalam setInterval Callback JavaScript

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:

Mengakses ini dalam setInterval Handlers

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn