Mengakses ini daripada Within setInterval dalam JavaScript
Apabila bekerja dengan setInterval() dalam JavaScript, ia boleh menjadi mencabar untuk mengakses contoh yang betul objek dari dalam fungsi panggil balik. Isu ini timbul apabila fungsi panggil balik ialah kaedah objek dan kata kunci ini tidak merujuk kepada contoh yang diingini disebabkan oleh cara JavaScript mengendalikan pengendalian acara.
Untuk mengatasi had ini, mari kita terokai penyelesaian yang menggunakan kaedah bind() untuk mengikat fungsi panggil balik kepada contoh objek yang betul.
Pertimbangkan perkara berikut contoh:
prefs: null, startup : function() { // init prefs ... this.retrieve_rate(); this.intervalID = setInterval(this.retrieve_rate, this.INTERVAL); }, retrieve_rate : function() { var ajax = null; ajax = new XMLHttpRequest(); ajax.open('GET', 'http://xyz.example', true); ajax.onload = function() { // access prefs here } }
Dalam contoh ini, matlamatnya ialah untuk mengakses sifat prefs objek dari dalam pengendali onload permintaan AJAX. Walau bagaimanapun, kelakuan lalai JavaScript menyebabkan perkara ini merujuk kepada objek tetingkap dalam fungsi onload.
Untuk menyelesaikan isu ini, kita boleh menggunakan kaedah bind() untuk mengikat fungsi retrieve_rate kepada contoh objek semasa. Ini memastikan bahawa apabila fungsi onload digunakan, kata kunci ini akan merujuk kepada objek yang betul.
this.intervalID = setInterval(this.retrieve_rate.bind(this), this.INTERVAL);
Dengan mengubah suai kod dengan cara ini, kami memastikan bahawa ini merujuk kepada contoh objek yang betul apabila onload fungsi dipanggil, membolehkan kami mengakses harta prefs seperti yang dikehendaki.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Contoh Objek yang Betul Dalam Panggilan Balik `setInterval` dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!